Excel VBA在单元格内编辑时执行自定义菜单项

时间:2013-07-24 16:34:11

标签: excel vba menu

我在单元格中按照以下内容向上下文菜单添加了自定义右键单击菜单项:

Private Sub AddTheMenuItem(myCommandBar As Office.CommandBar, caption As String, action As String)
    Dim NewControl As CommandBarButton

    Set NewControl = myCommandBar.Controls.Add(Type:=msoControlButton, temporary:=True)

    With NewControl
        .caption = caption
        .OnAction = action
        .Picture = Application.CommandBars.GetImageMso("WrapText", 16, 16)
        .Style = msoButtonIconAndCaption
    End With

End Sub

菜单项显示正常,但没有子命令执行。我刚收到'ping'声音。我尝试使用peekmessage玩,我可以看到右键单击调出菜单,但不是左键单击选择菜单项。似乎消息没有传递给正在等待的任何VBA代码。

我认为我试图实现这一目标的方式不起作用,但我希望有一些方法可以让它发挥作用。对于我的应用程序,在单元格内为用户提供适当的菜单项非常重要。

提前谢谢你,

AZ

1 个答案:

答案 0 :(得分:0)

确保您的onAction值为String,或者它将在菜单设置中启动。     .OnAction = subName将失败 而     .OnAction =" subName"将会成功 只要     子子名称
在Object模块中,而不在Sheet或Workbook模块中。