silenceboy 发表于 2007-6-18 16:23:00

请教,这是为什么?

为什么这段程序会出错呢?
在CAD界面下,自定义按钮时(按钮的命令宏定义为(command "-vbarun" "宏名")),如果没有加载其它VBA程序
则这段程序就会正常运行。但是只要加载了其它任何VBA程序,至少我已经试过好几个程序了,不管里面有没有
public定义的宏,这段程序就会出错(点击CAD中的自定义按钮,但是在VBA界面下按F8单步执行又一切正常。)
,各种出错信息见附后图片。仔细看CAD命令行的提示,出错是由于路径不正确,
但是在VBA编辑界面下已经F8调试通过了,而且变量显示路径是正确的。
各位老大们,这是为什么啊?
谁知道,请告诉我,谢谢了。




http://bbs.mjtd.com/forum.php?mod=attachment&aid=MzU0MDh8NzhhNzFkOTl8MTY1OTEyNzI0MHw3MzI2OTE4fDYxMDYz&noupdate=yes&nothumb=yes
**** Hidden Message *****

silenceboy 发表于 2007-6-18 16:28:00

这段程序的提供者是wylong大侠,在此谢过.

烟雨.江南 发表于 2007-6-19 08:56:00


把程序中下面这句
ThisDrawing.SendCommand "-WBLOCK" & vbLf & str1 & "\Blocks\" & EntObj.Name & vbLf & EntObj.Name & vbLf
ThisDrawing.SendCommand "MSLIDE" & vbCr & str1 & "\Slides\" & EntObj.Name & ".SLD" & vbCr
删掉就行了。
哈哈。
其实,只要在你的DVB所在文件夹下面建立两个文件夹:Blocks 和 Slides 就可以了。

silenceboy 发表于 2007-6-19 10:45:00

真会开玩笑啊,
我不会白痴到不建立Blocks和Slides文件夹,
都说了单独运行时是正常的了。

烟雨.江南 发表于 2007-6-19 14:06:00

嗯,在我的电脑(XP sp2 + CAD2006)上试验过,是完全没有问题的。
有点疑问的是,那个“对象编组”对话框是在执行那个宏的时候调出来的吗?

silenceboy 发表于 2007-6-19 16:20:00

我的电脑是XP+CAD2004的,不知道为什么.
那个对话框是在执行这个宏的时候跑出来的,有时候还出来其它对话框.
比如RENDER对话框.
看提示行应该是在执行"-WBLOCK"的命令时搞出来的.
最主要的就是"MSLIDE"执行不了,从来没正常过.
"-WBLOCK"还正常过.
我连系统都重装过了,问题依然.
闷死了,整个程序就差这一段搞不定.

烟雨.江南 发表于 2007-6-19 16:44:00

按钮的命令可以贴出来看看吗?怀疑是按钮的命令格式有问题,导致在命令行输入了多余的空格,从而调用了前一个命令。
你试一下把按钮命令写成这样看行不行:
^C^C-vbarun ExportBlocksToSingleFile

silenceboy 发表于 2007-6-20 09:42:00

非常感谢烟雨江南多次回答我的问题.
按钮定义命令为^C^C(command "-vbarun" "宏名")
按你的说法改写按钮命令后,多余的对话框是没有了,但MSLIDE还是有问题.
主要是由于获取当前路径有问题(获取当前路径的代码是正确的),请看一下错误显示图片
再次感谢.

烟雨.江南 发表于 2007-6-20 16:12:00

因为看到的错误信息不全,不好判断是哪里的问题。可以的话按F2,把全部的文本窗口贴上来看看。
在我的电脑上试验完全是没有问题的,难道会是因为CAD2004的原因吗?

silenceboy 发表于 2007-6-21 12:05:00

首先非常感谢烟雨江南,
我已经找到原因
我在同一程序中多次定义变量获取当前工程路径,导至在最后一次再次获取路径时就出错了。
只要将该工程DVB文件最后一个加载至CAD中就可以搞定了。在VBA编辑中排第一个。
正在改写程序中。
页: [1]
查看完整版本: 请教,这是为什么?