ActiveX 文本框值循环

ActiveX textbox value looping

我正在尝试在几个名为 q1、q2、q3 ... q11 的 activeX 文本框上执行循环。这是我尝试过的方法,但没有用:

For i = 1 To 11
myValue(i) = ActiveDocument.q & i.Value
Next

我也尝试了 "q" & i(q & i)("q" & i) 等,但 none 也有效。

但是当我具体时它确实有效:

ActiveDocument.q1.Value

我错过了什么?

看来我们不能简单地做到这一点。以下子项适合我。

Sub tst()
Dim myValue(1 To 3)
Dim shp As InlineShape
Dim i As Long 'counter
On Error Resume Next    

For i = 1 To 3
    For Each shp In ActiveDocument.InlineShapes
        If Not shp.OLEFormat Is Nothing And _
            shp.OLEFormat.ClassType = "Forms.TextBox.1" And _
            shp.OLEFormat.Object.Name = "q" & i Then
        myValue(i) = shp.OLEFormat.Object.Text
        End If
    Next
Next
End Sub

如果不行,试试打开立即window(Ctrl+G), 步入子 (F8), 移动到 If 语句并尝试在立即 [=29] 中分别检查每个 If 子句=] 像这样:

?Not shp.OLEFormat Is Nothing

所有三个子句都应该得到 True。 如果这部分没问题,那么看看你将值放入数组的行会发生什么。