【问题标题】:Find specific menu item in Excel custom menu在 Excel 自定义菜单中查找特定菜单项
【发布时间】:2014-01-12 21:29:06
【问题描述】:

在 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

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

【问题讨论】:

    标签: excel vba menuitem


    【解决方案1】:

    无需循环,您可以直接寻址Item。例如

    Dim ctlItm As CommandBarControl
    
    Set ctlItm = NewMenu.Controls("Item1...")
    

    【讨论】:

    • 我怎么能错过?)
    【解决方案2】:

    尝试使用以下代码。它对我有用:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多