Lesnacklie 发表于 2006-5-18 19:04:00

求助!关于添加右键菜单选项的问题

我把例子输进去,试了几个版本的例子,但总是执行到最后一步生成菜单选项的时候总是出现“对象变量和with块变量未设置”的提示,请问这是怎么回事,谢谢了。

xinghesnak 发表于 2006-5-19 08:06:00

把你的程序贴上来吧!

Lesnacklie 发表于 2006-5-19 15:58:00

Sub Ch_AddMenuItemToshortcutMenu()
    Dim currMenuGroup As AcadMenuGroup
    Set currMenuGroup = ThisDrawing.Application.MenuGroups.Item(0)
    ' 查找快捷菜单并将其指定给
    ' shortcutMenu 变量
    Dim scMenu As AcadPopupMenu
    Dim entry As AcadPopupMenu
    For Each entry In currMenuGroup.Menus
      If entry.ShortcutMenu = True Then
            Set scMenu = entry
      End If
    Next entry
    ' 向快捷菜单添加菜单项
    Dim newMenuItem As AcadPopupMenuItem
    Dim openMacro As String
   
    ' 给宏指定“ESC ESC _open”的 VBA 等价值
   
    openMacro = Chr(3) + Chr(3) + "_open "
Dim a As Integer
Dim b As String
a = Asc("&")
b = Chr(95)
    Set newMenuItem = scMenu.AddMenuItem("", Chr(Asc("&")) + "OpenDWG", openMacro)
End Sub
真是太谢谢了

xinghesnak 发表于 2006-5-19 16:34:00

其实问题很简单,currMenuGroup得到的菜单组里没有快捷菜单,所以scMenu也就没有被赋值,自然到最后一句会报错。。。。(在我这就是这样)
不如把这句Dim currMenuGroup As AcadMenuGroup
    Set currMenuGroup = ThisDrawing.Application.MenuGroups.Item(0)
换成
    Dim currMenuGroup As AcadMenuGroup
    For Each currMenuGroup In ThisDrawing.Application.MenuGroups
      If currMenuGroup.Name = "AMDTPP" Then Exit For
    Next

Lesnacklie 发表于 2006-5-19 19:21:00

唉,小弟菜鸟,不明白,试了一下,还是有问题哦,运行到
For Each entry In currMenuGroup.Menus
这句时又出现对象变量或with块变量未设置,咋办呢

xinghesnak 发表于 2006-5-20 08:12:00

没招了,在我这一切正常,没有报错。。。你替换那句话了吗?

houlinbo 发表于 2006-12-6 15:08:00

同问,急呀,好几天了这个问题,我的也出现同样的提示,根本通不过

流动的清泉 发表于 2017-12-26 22:19:00

没有 lisp的 程序吗

dong20030432 发表于 2018-1-10 13:17:00

原因是当你要运行这个过程的时候,根本就没有快捷菜单弹出,无法获取,当然就不能执行了。
页: [1]
查看完整版本: 求助!关于添加右键菜单选项的问题