有关Application.Caller与Excel中的VBA的更多信息

Ehu*_*udz 2 excel vba excel-vba

我一直在使用Application.Caller进行比较.当用户单击命令按钮时,我假设Application.Caller返回命令按钮的名称,但我不确定.

我正在尝试做类似的事情:msgbox(Application.Caller),但意识到它不是正确的数据类型.我怎样才能弄清楚Application.Caller实际上是什么?

Sid*_*out 7

如该链接所示,Application.Caller并不总是String类型

您正在使用StrComp比较2个字符串.我建议使用这个.

Sub Sample()
    If TypeName(Application.Caller) = "String" Then
        MsgBox StrComp(Application.Caller, "Button1")
    End If
End Sub
Run Code Online (Sandbox Code Playgroud)

并将此宏指定给工作表上的表单按钮.

如果您看到我之前提供的链接中给出的示例,它会自动为您清楚:)

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
Run Code Online (Sandbox Code Playgroud)