apple06 发表于 2003-12-25 17:38:00

[求助]菜单宏的编写

问题一
我想通过菜单命令连接VBA窗体,使用下面语句
MacroStr = Chr(3) + Chr(3) + "-vbarun E:\VBA\FirTest.dvb!模块1.show_frm" + Chr(32)
Set OpenMenuItem = NewMenus.AddMenuItem(NewMenus.Count + 1, "打开窗体", MacroStr)
运行程序时AutoCAD弹出运行宏对话框,我必须手工选择show_frm过程并点击运行按钮。如何能使程序自动完成这些过程,直接操作shou_frm的指令。
并且命令行提示
未知命令:E:\VBA\FirTest.dvb!模块1.show_frm,查看帮助文件F1

问题二
窗体上有一命令按钮,我想通过按钮事件连接另一VBA过程,通用一下语句
IniFrm.Hide
ThisDrawing.SendCommand ("-vbarun E:\VBA\FirTest.dvb!模块1.single_test" & vbCr)
时AutoCAD命令行提示:
命令:-vbarun
宏名: E:\VBA\FirTest.dvb!模块1.single_test
未找到宏。

究竟是何原因,郁闷! 请教各位,指点迷津

subtlation 发表于 2003-12-25 17:47:00

问题二:你的宏位置正确吗?从提示来看运行没有问题,应该是宏的位置有问题

apple06 发表于 2003-12-25 18:04:00

宏位置绝对没问题的,再帮我查查

efan2000 发表于 2003-12-25 19:05:00

1、在菜单和工具栏中引用,路径的“\”要替换成"/"。
2、提示“未找到宏”,说明这个宏不存在,可能是你的拼写不正确或者位置错误。
注意:在命令行上包含路径时,“\”可以不替换成"/"。

zeng29 发表于 2003-12-25 19:08:00

两个问题是一个问题:
"E:\VBA\FirTest.dvb!模块1.single_test"改成:
"E:/VBA/FirTest.dvb!single_test"

1 single_test须为 public定义.
2 在问题一时,"\"须改成"/".
3 模块名为中文时须省略或用英文命名.

apple06 发表于 2003-12-26 19:45:00

奇怪啊,我把模块名改为英文的了,还是不行,"\"也改为"/",问题没有任何起色,还是需要我手动选择过程点击运行按钮

zeng29 发表于 2003-12-26 21:03:00

你不把DVB文件传上来,没办法诊断问题所在.
上传一个DVB文件让你参考一下.

bluemoon 发表于 2003-12-27 10:51:00

先做个sub 把调用窗体的语句写到里面 然后在用宏命令调用sub看看

莫名 发表于 2003-12-27 21:53:00

用下面语句即可!
ThisDrawing.SendCommand ("-vbarun single_test" & vbCr)
使用时工程要确保调汝。

llgzhang 发表于 2003-12-27 23:33:00

我的宏字串是这样写的,注意比你的多Chr(95),没有问题
    menuMacro = Chr(3) & Chr(3) & Chr(95) & "-vbarun C:/Project/PipeLine/PipeLine.dvb!modPublic.Test" & Chr(32)
页: [1] 2
查看完整版本: [求助]菜单宏的编写