VBA необходим для проверки установленного флажка c на основе результата текстового поля - PullRequest
0 голосов
/ 06 января 2020

Работая в 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

Я ценю любые предложения.

1 Ответ

0 голосов
/ 07 января 2020

Ты довольно близко. В скобках не должно быть значений переменных. Следует помнить, что совпадение должно быть точным, поэтому я добавил раздел, чтобы установить оба флажка в значение 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
...