识别正在执行哪个文本框

识别正在执行哪个文本框

我有一个包含数十个文本框的工作表。其中一些执行相同的宏,而另一些执行另一个宏,等等。我有五组文本框,它们执行五个不同的宏。我没有为每个文本框编写单独的宏,而是将它们分组在一起。现在我希望能够确定哪个文本框正在执行宏,以便我可以执行过滤以限制结果。

我只需右键单击文本框即可知道每个文本框的文本框名称。我只是不知道如何找出当前正在执行的文本框。谢谢。

答案1

将所有复选框(表单控件)设置为调用相同的宏。在宏中,您可以检查单击了哪个特定复选框及其各种属性,如下所示:

Dim chk As CheckBox
Dim str As String

Sub MyMacro()
    Set chk = ActiveSheet.CheckBoxes(Application.Caller)
    str = "CheckBox with Index=" & chk.Index & " and Name='" & chk.Name & "' and Value="
    If chk.Value = Checked Then
        str = str & "True was clicked!"
    Else
        str = str & "False was clicked!"
    End If
    MsgBox str
End Sub

1

相关内容