如何用excel中的宏执行cad中的宏!跪求大虾赐教
<p>我想在excel中打开cad 并加载dvb 然后执行! 前面都没问题 就是到红色字体 <font color="#ee3d11">RunMacro</font> 那步 出不来</p><p>还望高人指点下</p><p>******************************以下excel中的代码</p><p>Private Sub CommandButton1_Click()</p><p>Dim cap As AutoCAD.AcadApplication</p><p>Dim caddoc As AcadDocument, mospace As AcadModelSpace</p><p>On Error Resume Next '忽略错误</p><p> Set cap = GetObject(, "Autocad.application")</p><p>If Err.Number <> 0 Then '如果 Excel 没有运行则</p><p> Err.Clear</p><p> Set cap = CreateObject("Autocad.application")<br/> <br/>End If</p><p> cap.Visible = True<br/> <br/> </p><p>Set caddoc = cap.ActiveDocument</p><p><br/>Set mospace = caddoc.ModelSpace</p><p><br/>Dim dwgname As String, aada As Object</p><p>dwgname = "H:\试验表格\综合部分\数字驱动版\开料\主杆下料图模板.dwg"</p><p><br/>Set caddoc = cap.Documents.Open(dwgname)</p><p><br/> Dim FileName As String<br/> <br/> FileName = "F:\gongzuo\My Draw\复件绘图模板\下料数据.dvb"<br/> <br/> <br/> cap.LoadDVB FileName<br/> <br/> <br/> <font color="#ee3d11">cap.RunMacro ("caddoc.修改")</font></p><p>caddoc.Close<br/>cap.Quit<br/></p><p>end sub</p><p>*****************************************下面的是cad中的宏*************<br/>Sub 修改()<br/> Dim shuj(200, 1) As Variant<br/> <br/> Dim txrstring As String<br/> txtstring = InputBox("文件编号")<br/> <br/> Open "d:\pc001\huitu\XIALIAO\" & txtstring & ".txt" For Input As #1<br/> For n = 1 To 192<br/> Input #1, shuj(n, 0), shuj(n, 1)<br/> Next<br/> Close #1<br/> Dim returnObj As AcadObject<br/> For Each returnObj In ThisDrawing.ModelSpace<br/> For n = 1 To 192<br/> If returnObj.Handle = shuj(n, 0) Then<br/> returnObj.TextString = shuj(n, 1)<br/> End If<br/> Next<br/> Next<br/> MsgBox entObjectID<br/>End Sub</p><p></p><p></p> <p>不太明白你的意思,一般是在CAD调用excel。</p><p>你的问题是跨平台运行,要想在excel中运行autocad,就直接在excel中,摸拟autocad VBA程序。</p><p> Dim FileName As String<br/> <br/> FileName = "F:\gongzuo\My Draw\复件绘图模板\下料数据.dvb"<br/> <br/> <br/> cap.LoadDVB FileName<br/> <br/> 表示你已经在CAD中装载了vba的dvb 文件。<br/> <font color="#ee3d11">cap.RunMacro ("caddoc.修改")--这条语句是否为excel的caption按钮定义设置。</font></p><p></p> <p>本来我是在 excel里 模拟cad vba程序 得</p><p>后来发现excel 中的vba 是解释1句 执行1句 运行的太慢了</p><p>我就想 在CAD中装载dvb文件 然后执行dvb里的宏命令,在cad中运行话速度快很多。</p><p>装载成了 就是执行不了</p><p> RunMacro到底怎么用呢? 还是我少了哪步?</p><p></p> <p>RunMacro没用过,在CAD中,调试程序常用的是-vbarun 文件名(.dvb)。</p><p>实在没明白,RunMacro在此处有何用途?谢谢。</p> <p>用sendcommand方法?</p><p>我 试 过 sendcommand 方法 发送 -vbarun 但是命令行提示我输入 宏名 我输入</p><p> "<font color="#cc7033">F:\主杆下料图模板.dwg!ThisDrawing.修改" 然后就提示找不到宏</font></p><p><font color="#cc7033">后来又把 </font><font color="#000000">-vbarun "<font color="#cc7033">F:\主杆下料图模板.dwg!ThisDrawing.修改" 连着输 也不行</font></font></p><p>我就不知道哪错了!</p><p></p><p>能给个 -vbarun 得实例吗!! 谢谢了 </p><p>我忙了1礼拜了 也没找到 跨平台调用cad宏的办法</p><p>其他方式也行 最好上个例子 1小段就成</p><p>小弟涕零</p> <p></p><p></p><p></p><p>我想用sendcommad 方式都不行</p><p>哪错了呢?</p> <p></p><p>以下是网上发现出现最多的1种方法 ,但是红色字部分看不懂 高人请指点我把</p><p></p><p>二、执行VBA宏 <br/> 要执行工程中的宏,有下面三种方法: <br/> 1.从工具条或者下拉菜单执行VBA宏 <br/> 用户可以从AutoCAD的工具条或者下拉菜单来执行VBA宏,<font color="#f73809">这需要修改该工具条按钮或者下拉菜单项的Macro属性。Macro扇性必须设定等于: <br/> -VBRUN Filename.dvb!ProjectName.MacroName <br/></font> 其中Filename.dvb为工程的文件名,ProjectName为工程的名称,MacroName则是要执行的宏的名称,VBARUN是AutoCAD的一个指令。 <br/> 2在AutoCAD启动时自动地执行VBA宏 <br/> 用户可以自动地在acad.dvb文件中执行任何宏,方法是在AutoCAD的启动文件acad.lsp中使用VBARUN指令调用宏。 <br/> 例如,如果要自动地执行名为DrawBlot的宏,首先将DrawBlot宏创建在acad.dvb文件中,然后在AutoCAD的启动文件acad.lsp中添加下面程序代码: <br/> (defun S::STARTURP() <br/> (command "_-VBARUN" "DrawBlot")) </p><p></p><p></p><p><br/></p> <p>谢谢大家 我找到不能调用原因 </p><p>宏名不能用中文</p><p>这掉东西折腾了我1星期 悲剧阿</p>
页:
[1]