在excel中,我可以使用此对话框为图像指定宏:
这导致代码:
Private Sub MyShape_Click()
' ...
End Sub
但是,我需要将此宏指定给许多不同的图像。如何确定从我的点击处理程序中选择了哪个图像,以及如何获得对它的引用?
答案 0 :(得分:4)
<强>更新强>
为所有照片指定相同的宏,并使用宏中的Application.Caller
来确定调用它的照片/形状。在这种情况下(图片/形状)Application.Caller
将是String
类型。
Private Sub GenericPicture_Click()
Select Case Application.Caller
Case "Picture 1"
'do your work
MsgBox "You got me"
Case "Picture 2"
'do your work
...
End Select
'Lets flip the picture that has been clicked
With ActiveSheet.Shapes(Application.Caller)
.Flip msoFlipHorizontal
End With
End Sub
您还可以使用来自不同宏的参数来实现调用sub实现所需处理逻辑的所需行为:
Sub Picture1_Click()
DoWork 1
End Sub
Sub Picture2_Click()
DoWork 2
End Sub
Sub DoWork(ByVal pic As Integer)
'Implement your logic here
MsgBox "Hi! I am picture" & pic
End Sub
Picture1_Click()
和Picture2_Click()
是指定给图像/形状的宏。