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

请教,这是为什么?

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

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

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

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

本帖最后由 作者 于 2007-6-19 9:39:00 编辑 <br /><br /> <p>把程序中下面这句</p><p>ThisDrawing.SendCommand "-WBLOCK" &amp; vbLf &amp; str1 &amp; "\Blocks\" &amp; EntObj.Name &amp; vbLf &amp; EntObj.Name &amp; vbLf</p><p>ThisDrawing.SendCommand "MSLIDE" &amp; vbCr &amp; str1 &amp; "\Slides\" &amp; EntObj.Name &amp; ".SLD" &amp; vbCr</p><p>删掉就行了。</p><p>哈哈。</p><p>其实,只要在你的DVB所在文件夹下面建立两个文件夹:Blocks 和 Slides 就可以了。</p>

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

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

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

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

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

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

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

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

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

郁闷啊

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

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

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

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

首先非常感谢烟雨江南

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