ActiveX文本框值循环

时间:2015-03-15 17:57:53

标签: vba textbox activex word-vba

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

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

我还尝试了"q" & i(q & i)("q" & i)等,但它们都没有用。

然而,当我具体时,它确实有效:

ActiveDocument.q1.Value

我错过了什么?

1 个答案:

答案 0 :(得分:1)

看来我们做不到这么简单。以下子项适用于我。

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

如果不起作用,请尝试打开立即窗口 Ctrl + G ),然后进入子( F8 ),转到If语句并尝试在立即窗口中单独检查每个If子句,如下所示:

?Not shp.OLEFormat Is Nothing

对于所有这三个条款,您应该获得True。 如果这部分没问题,那么看一下将值放到数组中的行会发生什么。