我有一个包含数十个文本框的工作表。其中一些执行相同的宏,而另一些执行另一个宏,等等。我有五组文本框,它们执行五个不同的宏。我没有为每个文本框编写单独的宏,而是将它们分组在一起。现在我希望能够确定哪个文本框正在执行宏,以便我可以执行过滤以限制结果。
我只需右键单击文本框即可知道每个文本框的文本框名称。我只是不知道如何找出当前正在执行的文本框。谢谢。
答案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