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

在单元内按照以下方式添加了自定义右键单击菜单项到上下文菜单:

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玩,我可以看到右键单击调出菜单,而不是左键单击select菜单项。 看起来这个消息不会传递给正在等待的任何VBA代码。

我想,我试图达到这个目标的方式是行不通的,但是我希望得到任何有关如何使其工作的build议。 对于我的应用程序,在单元格内为用户提供适当的菜单项很重要。

先谢谢你,

AZ

请确保您的onAction值是一个string,否则将在菜单设置中启动。 .OnAction = subName将失败,而.OnAction =“subName”将成功,只要Sub subName
位于“对象”模块中,而不在“工作表”或“工作簿”模块中。