excel - 在 vba 中聚焦或单击后如何获取文本框名称
问题描述
如何获取在 VBA 中获得焦点或单击的当前文本框(activex 控件)的名称?请注意,此文本框位于工作表上,而不是表单上。
解决方案
尝试这样的事情:
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
它作为一个模块级变量,这将在执行之间保存它。然后对于每个文本框,在它们的_GotFocus
事件中放置一个脚本。此脚本会将最近交互的文本框保存到ActiveShape
变量中。
如果您愿意,可以将脚本放入每个文本框_LostFocus
事件中以设置ActiveShape
为Nothing
. ActiveShape
如果您关心这种区别,这将确保只是当前活动的形状而不是最近活动的形状。
推荐阅读
- javascript - 如何使用 Nuxt 2 转换 node_modules 中的依赖项?
- python-3.x - 分层索引按列排序,同时保留原始列
- python - Python:如何从包含重复项的列表列表中返回具有计数的不同项目列表?
- javascript - 使用 MySQL 中的 PHP 数组数据生成 Google 函数图,但函数不可视化
- google-apps-script - Google 表格脚本帮助:复制/粘贴值 + 清除数据 + 合并行(保留唯一值)
- mysql - 如何在 MySQL 的 IF 条件下不返回任何内容?
- node.js - 在构建脚本中使用 util.promisfy 无法按预期工作
- java - 不断收到此错误:“变量总计可能尚未初始化”
- python - 在 Python 中编辑 print 的输出格式
- matlab - 在 MATLAB 上查找矩阵的 m 线性独立列