标题:Word 2016:VAB 复选框:将用户窗体复选框的变量显示到覆盖的 Word 文档内的另一个变量复选框。
我有一个 Word 文档,有 6 个复选框,分为 2 组,每组 3 个,可供选择。 (即是/否和是/不是)每组复选框都经过验证,仅使用以下代码选中一个框,以及填写表格中的其他内容 - 文本变量。
为了简化文档的填写,我选择“创建”一个包含 6 个复选框和其他文本数据字段的用户表单。 UserForm 复选框中的每 6 个变量都分配有名为 Checkbox1 至 Checkbox 6 的变量。
Private Sub Checkbox1_Click()
If Checkbox1.Value = True Then
Checkbox2.Value = False
End If
End Sub
Private Sub Checkbox2_Click()
If Checkbox2.Value = True Then
Checkbox1.Value = False
End If
End Sub
在用户窗体中输入所有数据并选中复选框后,按下“确定”按钮,该按钮将运行 VAB 代码,以使用包括选定的复选框 1-6 在内的所有变量填充覆盖的 Word 文档。
问题: 单击“确定”按钮后,所有文本(分配给各种变量)但是:覆盖的 Word 文档上没有任何复选框被填充。
我尝试过的许多尝试的当前示例,但 .Text 无法更改为正确的 VBA 对象类型 .Checkbox
Private Sub ToggleButtonOK_Click()
Dim COTTPower1 As Range
If Checkbox1 = True Then
Set COTTPower1 = ActiveDocument.Bookmarks(True).Range
Else
Set COTTPower1 = ActiveDocument.Bookmarks(False).Range
End If
COTTPower1.Text = Me.CheckBox1.Value
.
.
.
{Repeat of the checkbox VBA Coding with changing variables.}
.
.
.
结束子
任何人都可以帮助使用适当的代码来完成此任务吗?
当您引用书签范围时,其名称应加引号,因为它是字符串:
Set COTTPower1 = ActiveDocument.Bookmarks("True").Range
当然,书签必须存在。然后您可以更改其文本:
COTTPower1.Text = Me.CheckBox1.Value
其文本更改后,书签将自动删除,因此如果不将书签添加到该范围(其名称应该相同),您将无法检索其文本:
ActiveDocument.Bookmarks.Add "True", COTTPower1
这也没有任何意义:
If Checkbox1 = True Then
Set COTTPower1 = ActiveDocument.Bookmarks(True).Range
Else
Set COTTPower1 = ActiveDocument.Bookmarks(False).Range
End If
为什么要设置 2 个不同的书签范围?您的文档中是否有“True”和“False”书签?