wholin 发表于 2006-11-2 14:09:00

vba宏如何在命令行运行

<P>我现在做了一个vba宏,然后写了一个lisp存在宏同一个目录里,我的想法是想在autocad的命令行里输入一个命令,就能直接运行vba宏</P>
<P>&nbsp; lisp的内容如下:</P>
<P>&nbsp; (defun c:xkxj() <BR>&nbsp;&nbsp;&nbsp; (setvar "cmdecho" 0) <BR>&nbsp;&nbsp;&nbsp; (command "-vbarun" "E:\autocad\ldtnew\hxkxj.dvb!ThisDrawing.Test5") <BR>&nbsp;&nbsp;&nbsp; (setvar "cmdecho" 1) <BR>&nbsp;&nbsp;&nbsp; (princ) <BR>)</P>
<P>我在autocad中启动组里面加载上面的两个文件,然后在命令行里输入xkxj,运行报错:找不到宏,不知道是那里的原因?大家帮忙看一下</P>
<P>&nbsp;宏没有问题,我用vbarun执行宏都可以正确执行宏</P>

wholin 发表于 2006-11-8 12:16:00

<P>大家帮忙看一下呀,我现在解决不了这个问题</P>

wyj7485 发表于 2006-11-8 14:32:00

"_vbarun"

enocheasty 发表于 2007-10-18 21:56:00

<p>试试看把你的路径中的"\"符号翻过来,写成"/"</p><p></p>

yefeiwolaile 发表于 2007-10-22 22:57:00

<p>E:\autocad\ldtnew\hxkxj.dvb!</p><p>上面不写&nbsp; 试试看</p>

laoxie_198 发表于 2007-10-22 23:24:00

<p></p><p>先将宏放到搜索路径里</p><p>(vl-load-com)<br/>(vl-vbaload(findfile "拍卖地块加点.dvb"))<br/>(defun c:pmjd()<br/>&nbsp;&nbsp; (vl-vbarun "jd")<br/>&nbsp;&nbsp; (princ)<br/>)</p>

buhuilang 发表于 2008-4-26 00:12:00

<p>&nbsp;将 (command "-vbarun" "E:\autocad\ldtnew\hxkxj.dvb!ThisDrawing.Test5") 改为</p><p>&nbsp; (command "_-vbarun" "hxkxj") 即可(lsp文件与dvb未见同目录)<br/><br/></p>

linux1234 发表于 2008-5-9 20:25:00

<p>好像应该将thisdrawing去掉</p>

xxxtttxxx 发表于 2008-5-9 20:46:00

<p>首先需要加载vba,才能运行lisp命名执行vba。</p><p>那么怎么样实现下面的功能呢:</p><p></p><p>执行命令xx,如果vba没有加载,则加载vba,路径“yy”,执行zz函数。</p><p>如果已经加载了vba,直接执行函数。</p><p>哪位高手有这个lsp?</p>

hbyu2003 发表于 2008-5-15 17:01:00

<p>(defun C:abcd ()<br/>&nbsp;&nbsp;&nbsp;&nbsp; (vl-load-com)<br/>&nbsp;&nbsp;&nbsp;&nbsp; (vla-runmacro<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (vlax-get-acad-object)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "repltext.dvb!module1.ReplaceText")&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp; (princ)<br/>) </p><p>上面的代码生成lsp文件,把lsp文件和repltext.dvd放到搜索路径里,加载lsp文件,运行abcd,如果repltext未加载就自动加载来运行replacetext宏</p>
页: [1]
查看完整版本: vba宏如何在命令行运行