Word 2016 VBA:用户表单复选框提供第二个 MSDOC 复选框

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

标题: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.}
 .
 .
 .

结束子

任何人都可以帮助使用适当的代码来完成此任务吗?

checkbox ms-word userform
1个回答
0
投票

当您引用书签范围时,其名称应加引号,因为它是字符串:

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”书签?

© www.soinside.com 2019 - 2024. All rights reserved.