fanny_6 发表于 2008-6-19 14:39:00

运行VBA,死机的问题

<p>在VBA做关闭文件操作时,CAD命令栏出现“VBARUN”字样,之后就CAD死了,无法执行后续操作。</p><p>命令如下:</p><p>function CloseCAD()<br/>.......<br/>&nbsp;&nbsp;&nbsp;&nbsp;If ThisDrawing.Application.Documents.count &gt; 1 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; objDoc.Close False<br/>&nbsp;&nbsp;&nbsp; End If</p><p>&nbsp;&nbsp;&nbsp;&nbsp; MsgBox "关闭成功"<br/>End Sub</p><p>单步执行时执行到 End Sub结束,无法返回到主函数</p><p>什么原因呢?请高手解答</p>

xxxtttxxx 发表于 2008-6-19 17:04:00

<p>VBA是针对thisdrawing运行的,thisdrawing都被你关掉了,怎么运行下去啊。</p><p>要用这个功能,还是用vb写吧</p>

robbin840311 发表于 2008-6-19 17:06:00

<p>function CloseCAD()<br/><br/>End Sub???</p><p>Function与End Sub配对?? 在这里不能用End Sub的,请把全部代码贴出来。</p>

fanny_6 发表于 2008-6-19 21:35:00

<p>If ThisDrawing.Application.Documents.count &gt; 1 Then<br/></p><p>所以ThisDrawing没有关光,可以的</p><p>function CloseCAD()<br/><br/>End Sub</p><p>写错了,源程序对的</p><p></p>

robbin840311 发表于 2008-6-19 22:24:00

LZ,请把源程序贴出来,我看到的是function和end sub配对,执行到end sub的时候会出错。

xxxtttxxx 发表于 2008-6-19 23:28:00

<p>lsp只对当前的thisdrawing,在当前dwg中单独加载的lsp,在其他dwg中无效。</p><p>虽然不知道VBA是不是只针对当前的thisdrawing(可能不是),不过,thisdrawing关闭以后</p><p>虽然还有dwg文件打开着,但是thisdrawing这个object的handle应该是针对关闭的这个。</p><p>建议先set acad_doc= thisdrawing试试看。</p><p></p>

fanny_6 发表于 2008-6-20 10:14:00

<p>谢谢各位,我再试试</p>
页: [1]
查看完整版本: 运行VBA,死机的问题