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

iCAx开思网

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

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

[复制链接]
跳转到指定楼层
1
发表于 2016-7-31 00:56:27 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

马上注册,结交更多同行朋友,交流,分享,学习。

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

x
今天研究了半天的宏文件,其实就是因为工作中每套图纸都要出图纸目录,图纸一多,出图纸目录也麻烦,于时突然想起用宏文件来批量打开工作图文件抓取属性然后输出成txt文件,(当然,输出成excel文档也行)。对宏,我算四分之三个文盲,完全没学过的东西,只能在网上搜些代码来慢慢的按自己的想法去改、去试验。搞了半天,现在竟然才做到打开工程图,提取图纸幅面大小和每个零件的图纸的张数。现在有问题只能求助各位大神了:第一:打开一张工程图后,抓取图纸里某个视图(其实抓取任何一个视图)的关联的零部件的属性,这个代码怎样写?第二:运行宏以后,得到的结果比如说 代号、名称、图幅、张数 怎么导出成txt文件?这个宏代码又应该怎样写?半夜三更了,实在是理不清了,没办法了只能求助了,求大神们有空闲了多多指点指点。谢谢。

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏4 分享淘帖 赞一下!赞一下!
推荐
发表于 2016-8-2 15:49:50 | 只看该作者
假设在A1单元格输入项目号

第一层的函数写法建议如下:
按A1单元内容的长度加二起读取代号两字节再乘以十的八次方。

第二层的函数写法建议如下:
当代短于项目号长度加四(相当于不含第二及以上的层级),给予0;
否则按A1单元内容的长度加五起读取代号两字节再乘以十的六次方。

第三层的函数写法建议如下:
当代短于项目号长度加七(相当于不含第三及以上的层级),给予0;
否则按A1单元内容的长度加八起读取代号两字节再乘以十的四次方。

第四层的函数写法建议如下:
当代短于项目号长度加十(相当于不含第四及以上的层级),给予0;
否则按A1单元内容的长度加十一起读取代号两字节再乘以十的二次方。

第五层的函数写法建议如下:
当代短于项目号长度加十三(相当于不含第五及以上的层级),给予0;
否则按A1单元内容的长度加十四起读取代号两字节再乘以十的零次方。

详见动画。

本帖子中包含更多资源

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

x
35
发表于 2021-12-17 22:59:35 | 只看该作者
kankan学习学习谢谢楼主
34
发表于 2016-8-24 15:57:05 | 只看该作者
sw 发表于 2016-8-12 09:06
按莱虫说法搞了一下,附件写得丑陋,代码不便公开,玩玩好了。

谢谢了。我下载了学习学习。
33
发表于 2016-8-12 09:06:15 | 只看该作者
按莱虫说法搞了一下,附件写得丑陋,代码不便公开,玩玩好了。

本帖子中包含更多资源

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

x
32
发表于 2016-8-7 12:35:45 | 只看该作者
dreamsboy 发表于 2016-8-7 02:28
API 宏已经属于二次开发的范筹了吧?

哦 明白
31
发表于 2016-8-7 02:28:27 | 只看该作者
大鹿 发表于 2016-8-6 16:40
貌似要二次开发

API 宏已经属于二次开发的范筹了吧?
30
发表于 2016-8-6 16:40:27 | 只看该作者
貌似要二次开发
29
发表于 2016-8-5 22:39:10 | 只看该作者
莱虫 发表于 2016-8-5 10:24
建议一开始就尽量说出要求,像挤牙膏般,想到什么就什么,不是办法,只会让早前所做的一切都变得白做。

好吧,我之前没说清楚组件前面这个0并不是纯粹是为了把组件图号补足成两位数的。
28
发表于 2016-8-5 10:24:30 | 只看该作者
建议一开始就尽量说出要求,像挤牙膏般,想到什么就什么,不是办法,只会让早前所做的一切都变得白做。
27
发表于 2016-8-4 23:33:00 | 只看该作者
莱虫 发表于 2016-8-2 19:14
excel函数基本上与VB无关的,在excel环境来说,应先采用函数,不行再考虑VBA。
这是一个单纯使用函数来 ...

莱大您好。这两天工作比较忙,在出一个项目的设备安装需求图,没有多少时间仔细研究这个文件。不过我也并没有偷懒,在手机上下了个VB教程的APP了,在有时间就瞄几眼学一下。
对于您这个文件,我主要是卡在了你的一行代码上。

=IF(MID(A5,ROUNDUP((LEN(A5)-LEN(A$1))/3,0)*3+LEN(A$1)-2,1)=".","装配","-零件-")

请问下,这一行代码,ROUNDUP((LEN(A5)-LEN(A$1))/3,0)*3 ,想请问下,为什么(LEN(A5)-LEN(A$1))的结果要除以这个3呢?这一步的思路是什么呢?是因为表里的装配体代号加上前面的符号段(这例里的.号)的字符长度都是3位吗?我试了下,如果装配体的编号超过10时,这一个部件被识别成了零件。同时后面的那例乘号和加号的混合运算的结果也会出错了,比前面的.05  .07   .08等的运算结果都要小了。且装配体的编码为.012等三位数值时,后面的混合运算的结果就报错了。出错的情况如附件和图片所示。如果用这代码的话,那就是以后部件编码最多到.09了,从.010的组件开始后面的就会有问题了(因为我们公司的规定是部件的编码前面必须得加这个数字“0”)。这个问题应该怎么解决?请莱大指点指点,谢谢。

本帖子中包含更多资源

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

x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

GMT+8, 2025-5-11 13:28 , Processed in 0.027595 second(s), 13 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2025 www.iCAx.org

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