在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 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