VBA 需要根据文本框结果检查特定的复选框
VBA needed for checking a specific check box based on text box result
在 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
在 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