checkbox - 根据文本框结果检查特定复选框所需的 VBA
问题描述
在 Word 2010 中工作时,我需要一个表单的 VBA 代码,该代码将根据要填充到 ActiveX 文本字段中的文本集来检查两个 ActiveX 复选框之一。(男性或女性)我是新手,并尝试了以下代码的各种变体:
Sub copyMaleFemale()
Dim ff As String
ff = CurrentFormField.Result
If ff = ("Male") Then
ActiveDocument.FormFields("Check1").Result = Checked
ActiveDocument.FormFields("Check2").Result = Unchecked
ElseIf ff = ("Female") Then
ActiveDocument.FormFields("Check1").Result = Checked
ActiveDocument.FormFields("Check2").Result = Unchecked
End If
End Sub
我很感激任何建议。
解决方案
你很接近。变量值周围不需要括号。需要记住的是匹配必须是准确的,所以我添加了一个部分来将两个复选框都设置为 false,如果文本字段有任何不同的话。
使用 With/End With 始终是消除额外代码并使宏运行得更快一点的好方法:
Sub copyMaleFemale()
Dim ff As String
ff = ActiveDocument.FormFields("Text1").result
If ff = "male" Then
With ActiveDocument
.FormFields("Check1").CheckBox.value = True
.FormFields("Check2").CheckBox.value = False
End With
ElseIf ff = "female" Then
With ActiveDocument
.FormFields("Check1").CheckBox.value = True
.FormFields("Check2").CheckBox.value = False
End With
Else
With ActiveDocument
.FormFields("Check1").CheckBox.value = False
.FormFields("Check2").CheckBox.value = False
End With
End If
End Sub
推荐阅读
- c - for 循环接受比循环条件多一个值
- c++ - 为什么在opencv squares.cpp中N = 11
- laravel - 如何为嵌套的对象数组添加验证
- mysql - SELECT 50 MAX FIRST PRICES without a "WHERE" clause
- java - 如何在 Vaadin 中编辑不可变对象列表?
- php - 使用 PHP 从 MySQL 数据库中打印出 Unicode
- java - 如何使用 Java 程序修改已编译的 .jar 中的类文件中的字符串?
- javascript - 将 API 和固定价格的最大标题长度设置为小数点后两位
- react-native - 分析数据未显示在 Firebase 控制台中
- kubernetes - 是否可以在 gcp 永久磁盘上编辑文件?