我一直在代码中比较使用Application.Caller。当用户单击命令按钮时,我假设 Application.Caller 返回命令按钮的名称,但不确定。
我正在尝试做类似的事情:msgbox(Application.Caller),但意识到它不是正确的数据类型。我将如何弄清楚Application.Caller实际上是什么?
如该链接所示,Application.Caller
并不总是String
类型
您正在使用比较 2 个字符串的StrComp
。我建议使用它。
Sub Sample()
If TypeName(Application.Caller) = "String" Then
MsgBox StrComp(Application.Caller, "Button1")
End If
End Sub
并将此宏分配给工作表上的表单按钮。
如果您看到我之前给出的链接中给出的示例,那么您会自动清楚:)
Select Case TypeName(Application.Caller)
Case "Range"
v = Application.Caller.Address
Case "String"
v = Application.Caller
Case "Error"
v = "Error"
Case Else
v = "unknown"
End Select