基于文本框结果检查特定复选框所需的VBA

问题描述 投票:-1回答:1

在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

我感谢任何建议。

checkbox ms-word word-vba textfield activexobject
1个回答
0
投票

您非常接近。变量值周围不需要括号。需要记住的一点是,匹配必须精确,因此,如果文本字段稍有不同,我添加了一个部分将两个复选框都设置为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
© www.soinside.com 2019 - 2024. All rights reserved.