找回密码 注册 QQ登录
一站式解决方案

iCAx开思网

CAD/CAM/CAE/设计/模具 高清视频【积分说明】如何快速获得积分?快速3D打印 手板模型CNC加工服务在线3D打印服务,上传模型,自动报价
打印 上一主题 下一主题

[求助] 求助把运行宏的结果输出到txt文件里的宏代码

[复制链接]
11
发表于 2016-7-31 19:02:16 | 只看该作者
莱虫 发表于 2016-7-31 18:23
刚才疏忽了版本的问题,附件只局限SW2014运行,请下载这个已修改的附件。

不好意思莱大,因为我在各种各样的测试,所以断断续续的在回复您。
我找到问题所在了。因为我点选的两张工程图中,第一张的第二页图纸是空白的没有插入模型的,所以报错。我把空白的那页图纸上插入了模型后,现在运行不报错了。
谢谢莱大。
我再继续测试看看。
12
发表于 2016-8-1 14:18:13 | 只看该作者
dreamsboy 发表于 2016-7-31 18:46
谢谢莱大。
我下载了这个新的文件后,运行后,可以输出了。不过在输出完成,最后会报一个“类型不匹配” ...

不好意思,俺能力所限,做不出脱离SW单独运行的EXCEL文件。

加一个“开始执行”按钮是可以的,烦请再试用一下,看看还有什么,一次过改进吧。
13
发表于 2016-8-1 22:24:33 | 只看该作者
莱虫 发表于 2016-8-1 14:18
不好意思,俺能力所限,做不出脱离SW单独运行的EXCEL文件。

加一个“开始执行”按钮是可以的,烦请再 ...

莱大你好。
我的想法是,增加开始执行按钮、清除选择按钮,这两个我可以慢慢的学习慢慢的学着自己加也没关系。现在最主要的问题是,因为我们一个项目中的零部件的“代号”除了前一部分是相同的,后面有一部分是不一样的,而且部件的代号后半部分是  ".0x",零的最后部分是“-X",就是装配点最后段是 “点+数字零+顺序号”,零件最后段是"横杠+顺序号“,长度是长短不一的,现在获取得到的属性是长短、尾部都不一的,这样这些文件在文件夹里排列顺序就是".xx"和”-x"分别扎堆了,EXCEL处理这些文件时是依次打开的,所以获取的到表格里的数据也不是按顺序号排列的。这种情况不大好表述,举个例子来说,比如说,最终的结果有可能是在这个EXCEL表格中“代号”那列中排列的依次是如图所示的,我想有没有办法让获取到的整个表格的内容最后按照代号这一栏的结果按升序排列?当然,这是个人的想法,但自己现在还没一点解决这个问题的思路。这个有可能要求得太完美了,还请莱大别反感我的奢求太多。
表达不清,请莱大看下图片及附件的EXCEL表格中的示例。
谢谢。





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
14
发表于 2016-8-2 00:52:40 | 只看该作者
dreamsboy 发表于 2016-8-1 22:24
莱大你好。
我的想法是,增加开始执行按钮、清除选择按钮,这两个我可以慢慢的学习慢慢的学着自己加也没 ...

这是excel如何排序的范畴了。
如果当初定义代号时没考虑方便排序,遇到问题的时候倒也是一件苦恼的事情。

建议加多一栏位,利用excel函数,把难以合理排序的“代号”化为可按想法排序的的“数字”,再以这新增栏位排序,应该可以解决的。
初步构思是先撇除固定部分,假设代号存在三层级,
第一层级的数字乘以一万(2变成20000,03变成30000),
第二层级的数字乘以一百(2变成200,03变成300),
第三层级的数字乘以一(2变成2,03变成3),
然后总加起来,既可用于排序。

评分

参与人数 1技术 +1 收起 理由
gt.adan + 1 赞一个!

查看全部评分

15
发表于 2016-8-2 01:12:29 | 只看该作者
莱虫 发表于 2016-8-2 00:52
这是excel如何排序的范畴了。
如果当初定义代号时没考虑方便排序,遇到问题的时候倒也是一件苦恼的事情 ...

跳脫傳統的思維就能有新方法,謝謝萊大分享!
16
发表于 2016-8-2 01:14:00 | 只看该作者
莱虫 发表于 2016-8-2 00:52
这是excel如何排序的范畴了。
如果当初定义代号时没考虑方便排序,遇到问题的时候倒也是一件苦恼的事情 ...

莱大好。
莱大果然是智者,这个思路真的让我钦佩。我想了一下午没思路,莱大这一会就把排 序的总的思路问题解决了。剩下来的问题可能就是怎么解决判断代号总共有几层了。不过这些代码,要我去慢慢试出来,不知要何年马月了。起点太低,现在只能慢慢的修改一些比较小功能的宏,在慢慢的学习,希望提高点水平。恳请莱大慢慢试验我的那几个想法,继续指点我。谢谢莱大了。

17
发表于 2016-8-2 01:53:43 | 只看该作者
gt.adan 发表于 2016-8-2 01:12
跳脫傳統的思維就能有新方法,謝謝萊大分享!

才看到丹大来回帖了呀。谢谢丹大半夜没休息还来捧场了。
18
发表于 2016-8-2 03:02:19 | 只看该作者
莱虫 发表于 2016-8-2 00:52
这是excel如何排序的范畴了。
如果当初定义代号时没考虑方便排序,遇到问题的时候倒也是一件苦恼的事情 ...

莱大,刚想起来,因为在代号中,在尾段的纯数字前面,一般都有些英文的隔断符,比如我们公司的就是在正式的图号前有 JX 两个英文字母,大部分公司应该都会有特定的隔断用的英文字符段吧。这样的话可不可以在输出前,先要求在EXCEL表格的顶行的某个显眼的位置输入隔断用的字符段(比如我就只输入“JX”两个字符),然后宏文件会根据这个输入的字符段判断并截取“代号”属性中隔断用字符段后面的部分,然后再把截取到的部分按照莱大你的思路进行处理,用宏判断截取到的部分总共有几层。这里我估计要等获取到EXCEL表格中选取的所有的工程图的"代号“属性后,判断选择出层次最多的那一个数值,比如说,如果层次最多的那一个数值是五层,那么这一个数值的第一层(获取到的数值中的第一段)就把数值乘100000(最长的数据有几层,就乘1后面5个0。或者简单粗暴的,直接不管获取得到的是几层,设置只要是第一层就给它乘1后面带十个八个0的,省去判断层次和0的位数之间的关系。一般乘十个八个0的应该够了,应该不会有哪个公司和个人会把代号深化到那么多层吧。)。包含五层的数值,乘好及各层数值相加后,剩下的就是截取到的层次只有一层的数值,也得乘以五层的数值的第一层的数字乘的倍数,这样比较代号只有一层的和五层的最终数值结果时才能对了。

表述能力有点差。附件表格列出了大概的一点思路,请莱大参考以了解一下我的思路,请莱大再指点、启发。谢谢莱大。





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
19
发表于 2016-8-2 13:03:57 | 只看该作者
dreamsboy 发表于 2016-8-2 03:02
莱大,刚想起来,因为在代号中,在尾段的纯数字前面,一般都有些英文的隔断符,比如我们公司的就是在正式 ...

先温馨提示一下,并非针对dreamsboy,而是广大的网友。
当表达较为复杂的意思时,建议适当地分段和点列形式说明,一来方便阅读者,二来更可方便自己整理思路。

回说excel的问题。
1. 要解决在单元格输入".03"变成"0.03",方法有二,一:在前端加上" ' "(单引号)字符,二:单元格设定为文字格式。
2. 利用隔断符倒是一个方法,但不太直观,倒不如使用整个项目号,如例子中的"GXCC-WGC-JX"。
3. 理解得没错,是的,加多一些"0"是为了划分层级,并可避免顺序超越个位,但相信这顺序不会到达百位(即是说单一子装配不会包含超过99件的不同部件),因此每层级两个
"0"已经非常足够。
4. 例子的装配层级只有三层,估计不太足够,编写的函数最好能应付一到五个层级。

试算表可算是工程人员必不可少的工具,甚至可说是专营的利器,
有必要花一两天时间认证学好,有朝一日当上管理阶层甚至老板,也可掌握人士和财务数据,无须每一小节也假手于人。


20
发表于 2016-8-2 13:18:40 | 只看该作者
莱虫 发表于 2016-8-2 13:03
先温馨提示一下,并非针对dreamsboy,而是广大的网友。
当表达较为复杂的意思时,建议适当地分段和点列 ...

莱大您好。
莱大训导得是,之前我有考虑把单元格中的数字设置成文本格式,但考虑设置成文本格式后,会不会影响数学计算。
刚试验了下,确实单元格内文本格式的内容也可以做混合运算。之前没去试一下,我错了。
谢谢莱大指点。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3D打印手板模型快速制作服务,在线报价下单!

QQ 咨询|手机版|联系我们|iCAx开思网  

GMT+8, 2025-1-3 20:47 , Processed in 0.038175 second(s), 11 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2025 www.iCAx.org

快速回复 返回顶部 返回列表