查找

2014-01-12 27 views
2

在Excel(2010年),我創建了一個菜單查找

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

,並增加了一些項目到它在Excel中自定義菜單的具體菜單項

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 

但「對象不支持此類型或方法」出現錯誤。

回答

3

無需循環,您可以直接地址Item。例如

Dim ctlItm As CommandBarControl 

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

我怎麼會錯過它?) –

1

請嘗試使用以下代碼。它適用於我:

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