在Excel自定义菜单中查找特定菜单项
在Excel 2010中,我创建了一个菜单在Excel自定义菜单中查找特定菜单项,excel,vba,menuitem,Excel,Vba,Menuitem,在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
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
但对象不支持此类型或方法,出现错误。请尝试使用以下代码。这对我很有用:
Dim itm As CommandBarControl
For Each itm In Application.CommandBars(1).Controls("&MyMenu").Controls
If itm.Tag = "Item1" Then
'do something
End If
Next
尝试使用以下代码。这对我很有用:
Dim itm As CommandBarControl
For Each itm In Application.CommandBars(1).Controls("&MyMenu").Controls
If itm.Tag = "Item1" Then
'do something
End If
Next
无需循环,您可以直接寻址该项。比如说
Dim ctlItm As CommandBarControl
Set ctlItm = NewMenu.Controls("Item1...")
无需循环,您可以直接寻址该项。比如说
Dim ctlItm As CommandBarControl
Set ctlItm = NewMenu.Controls("Item1...")
我怎么会错过它?我怎么会错过它?