1

我在单元格中添加了一个自定义右键单击菜单项到上下文菜单中,如下所示:

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

菜单项显示正常,但没有执行任何子项。我只是听到“砰”的一声。我尝试过使用 peekmessage,我可以看到右键单击会调出菜单,但看不到选择菜单项的左键单击。似乎该消息没有传递给任何正在等待的 VBA 代码。

我想我试图实现这一目标的方式行不通,但我想要任何关于如何让它发挥作用的建议。对于我的应用程序,在单元格内为用户提供适当的菜单项非常重要。

先感谢您,

AZ

4

1 回答 1

0

确保您的 onAction 值是一个字符串,否则它将在菜单设置时启动。.OnAction = subName 将失败,而 .OnAction = "subName" 将成功,只要 Sub subName
在对象模块中而不是在工作表或工作簿模块中。

于 2014-11-16T17:34:20.023 回答