在Excel(2010)中,我创建了一个菜单

Dim NewMenu As CommandBarPopup
Set NewMenu = CommandBars(1).Controls.Add(Type:=msoControlPopup, Before:=HelpMenu.Index, temporary:=True)
NewMenu.Caption = "&MyMenu"


并添加了一些物品

Dim MenuItem As CommandBarControl
Set MenuItem = NewMenu.Controls.Add(Type:=msoControlButton)
With MenuItem
    .Caption = "&Item1..."
    .Tag = "Item1"
End With


现在,以后如何使用VBA查找特定的菜单项来启用或禁用它?

我尝试了以下

Dim itm As CommandBarControl
For Each itm In Application.CommandBars(1).Controls("&MyMenu")
    If itm.Tag="Item1" Then ...
Next


但是出现“对象不支持这种类型或方法”错误。

最佳答案

无需循环,您可以直接解决该Item。例如

Dim ctlItm As CommandBarControl

Set ctlItm = NewMenu.Controls("Item1...")

08-05 14:29