【发布时间】:2013-12-12 09:56:36
【问题描述】:
我在 Windows XP 机器上使用 Excel 2007。 在我的工作表上,我有很多“形状”(矩形)。
我已将宏分配给形状,以便它们在有人点击它们时执行任务。
我想做的是以下,但我读过帖子说这是不可能的。
- 当有人右键单击某个形状时,是否可以添加新的菜单项?
当有人右键单击单元格时很容易做到这一点,但形状看起来不同。
我知道工作表有一个名为“Worksheet_BeforeRightClick”的事件,但是当我右键单击一个形状时,我无法让它工作。
下面是我的代码的开头,但它对我的菜单没有任何影响。
提前致谢
With Application.CommandBars("Shapes")
With .Controls.Add
.Caption = "My New Menu Item"
.BeginGroup = True
.OnAction = "MyNewMacro"
End With
End With
【问题讨论】:
-
见
this也许你可以玩弄代码并让它工作:) -
您可以将这种代码附加到右键单击形状为
Worksheet_BeforeRightClick(ByVal Target As Shape, Cancel As Boolean),然后根据If IsInArray(Target, YourRangeArray) Then ...等范围数组检查目标。 仍然这会引发问题,因为当您右键单击其他任何内容(例如单元格)时,如果没有伴随某种错误捕获,例如On Error Resume Next
标签: vba excel excel-2007 right-click