vba - 获取在输入时调用宏的表单字段的名称
问题描述
我有一些表单域对象,它们在输入时调用宏。
如何获取调用宏的表单域的名称?类似于 application.caller 但用于 Word 的东西。
解决方案
假设您的意思是文档本身中的“旧表单字段”,如果您已将表单字段属性中的“输入时运行宏”设置为合适的子,则可以使用如下代码:
If Selection.FormFields.Count = 1 Then
' This deals with dropdown etc. but not FORMTEXT fields
Debug.Print Selection.FormFields(1).Name
ElseIf Selection.FormFields.Count = 0 And Selection.Bookmarks.Count > 0 Then
Debug.Print Selection.Bookmarks(Selection.Bookmarks.Count).Name
End If
FormField 实际上不必有名称,在这种情况下它不会有书签,因此您可能需要允许这样做。
如果您指的是其他类型的字段,例如文档中的 VBA 用户表单字段、内容控件或 ActiveX 字段,请修改您的问题以使其清楚。
推荐阅读
- angular - 如何在同一个班级有不同的计划
- linux - PAM auth 接口和 account 接口有什么区别
- react-native - 使用 react-native-maps 未显示谷歌地图/空白
- javascript - TensorFlowJS 异常 - 无法开始训练,因为另一个 fit() 调用正在进行中
- java - 无法使用 Firefox 以 HTML 格式加载小程序
- mysql - SQL 错误代码:无法打开引用的表“产品”?
- three.js - 为什么渲染器在 tf.toPixel(image, canvas) 之后无法正确渲染使用 Three.CanvasTexture 构建的模型
- windows - 如何通过UiPath构造基于动态ctrlid的选择器?
- angular - 如何在 Angular 中维护两个相同类型的表单?
- android - 无法解析“:app@debug/compileClasspath”的依赖关系:无法解析项目:PGSDKVR4.AggrePay-android