_Click()事件不会触发子VBA Excel

我已经为电子表格添加了一个矩形形状。 我现在希望在事件RectangleA_Click()上使用macros。 我知道形状的名字是RectangleA,因为我有下面的子:

Sub f() Dim Shape As Shape For Each Shape In ActiveSheet.Shapes Debug.Print Shape.Name Next End Sub 

我写了代码:

 Private Sub RectangleA_Click() MsgBox "hello" End Sub 

在编辑器中的相关工作表对象空间中。 在点击形状时子程序不被调用。

我知道,我可以使用右键单击>分配macros,但宁愿避免这一点,因为它似乎是一个不必要的步骤。 我也知道有Active X控件自动分配的macros,再次我宁愿避免这一点,如果可能的话。

像这样的东西可能会工作:

 Sub AssignMacroToShape() Set shpTemp = ActiveSheet.Shapes.AddShape(msoShapeRectangle, 1680#, 594#, 120#, 74.25) shpTemp.OnAction = ActiveWorkbook.Name & "!Macro Name" End Sub 

但是,右键单击>分配macros将更容易。

如果您需要创build形状,然后在创build后为其分配macros,上面的代码很有用。

如果这没有帮助,您可以查看OnAction事件以获取具体的答案。