如何获取在 VBA 中获得焦点或点击的当前文本框(activex 控件)的名称?请注意,此文本框位于工作表上,而不是表单上。
答案 0 :(得分:1)
尝试这样的事情:
Dim ActiveShape As Object
Private Sub TextBox1_GotFocus()
Set ActiveShape = Me.TextBox1
End Sub
Private Sub TextBox2_GotFocus()
Set ActiveShape = Me.TextBox2
End Sub
Sub Test()
MsgBox "You are currently on, or have recently clicked on " & ActiveShape.Name
End Sub
我将 ActiveShape
作为 Module-Level 变量,这将在执行之间保存它。然后对于您的每个文本框,在其 _GotFocus
事件中放置一个脚本。此脚本会将最近交互的文本框保存到 ActiveShape
变量中。
如果需要,您可以将脚本放入每个文本框 _LostFocus
事件中,以将 ActiveShape
设置为 Nothing
。如果您关心这种区别,这将确保 ActiveShape
只是当前活动的形状,而不是最近活动的形状。