Checkbox 基于文本框结果选中特定复选框所需的VBA
在Word 2010中工作时,我需要一个窗体的VBA代码,该窗体将根据要填充到ActiveX文本字段的文本集选中两个ActiveX复选框之一。(男性或女性)我是一名新手,尝试过以下代码的各种变体:Checkbox 基于文本框结果选中特定复选框所需的VBA,checkbox,ms-word,textfield,activexobject,Checkbox,Ms Word,Textfield,Activexobject,在Word 2010中工作时,我需要一个窗体的VBA代码,该窗体将根据要填充到ActiveX文本字段的文本集选中两个ActiveX复选框之一。(男性或女性)我是一名新手,尝试过以下代码的各种变体: Sub copyMaleFemale() Dim ff As String ff = CurrentFormField.Result If ff = ("Male") Then ActiveDocument.FormFields("Check1").Result = Checked Active
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
您在问题描述中说ActiveX,但代码用于表单字段。你到底在用什么?当你说“表单”时,你是指用户表单(对话框)还是文档是表单?您是否使用任何形式的保护?代码以什么方式“不工作”?我在ElseIf语句中颠倒了True/False(这在我的原始消息中是不正确的)。运行良好。。