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