【发布时间】:2021-04-07 12:06:31
【问题描述】:
我在 Word 文档中有许多 ActiveX 复选框,称为“CheckBox1”、“CheckBox2”等。
我有一个私有子,当单击按钮时,它会查看这些复选框,如果选中某些框,它会运行一个宏。如果我使用 me.CheckBox1、me.CheckBox2 等单独访问复选框,则代码可以正常工作,但我希望能够像 me.checkBox[variable] 一样运行一个贯穿它们的循环,但我无法让它工作.有任何想法吗?谢谢!
跟进: 我已经尝试了蒂姆好心放在下面的代码,但是我仍然无法以有意义的方式使用复选框。我已经输入了:
Sub checkCheckBox()
Dim obj, i As Long
Dim boxName As String
For i = 1 To 10
Set obj = GetControlByName(ThisDocument, "CheckBox" & i)
boxName = obj.Name
If ThisDocument.boxName.Value = True Then
.... ' do something
End If
Next i
End Sub
如果我使用 ThisDocument.CheckBox1.Value 并以这种方式对其进行硬编码,但它不喜欢该变量。
【问题讨论】:
-
如果您有现有的代码,那么最好将其包含在您的帖子中。
-
谢谢。有效的现有代码是 If Me.CheckBox1.Value = True Then .... 但如果我尝试做 If Me.CheckBox[iCount].Value 或 Me.CheckBox&iCount.Value 或类似的东西它不起作用(其中 iCount 是声明的整数变量)
-
如果您需要检查从
GetControlByName返回的复选框的值,那么您可以使用(例如在上面的代码中)obj.Value