用计数器实现循环

时间:2014-06-07 19:38:17

标签: vba for-loop ms-word counter word-vba

我有一个Word Userform,我动态添加文本框。然后,代码将来自文本框的信息放入书签,这些书签是图片文件名。这是动态的,因为您输入了所需的文本框数量,然后将它们添加到用户窗体和文档中的文本中。我把这个代码的最后一部分留下了,因为它很长,而且此时不需要。

我试图将我的代码的第一部分放入“For循环”中,但我这样做有很多困难。我提供的代码的第二部分有一个文本框计数器,我试图将其绑定。

现在我的代码可以工作,如果我在一个名为“Amount”的文本框中输入10,你会在整个代码中看到它。我需要输入任何数字。

如果您认为整个代码会让我知道,我会添加它。我已经能够让其他一切工作了,但由于某些原因,这让我难以忍受了好几天。

需要“For loop”实施

Sub CommandButton1_Click() 

Dim Textbox As Object
Dim Textbox1 As Object
Dim Textbox2 As Object
Dim Textbox3 As Object
Dim Textbox4 As Object
Dim Textbox5 As Object
Dim Textbox6 As Object
Dim Textbox7 As Object
Dim Textbox8 As Object
Dim Textbox9 As Object
Dim Textbox10 As Object    

Dim TBs(9) As Object
Set TBs(0) = UserForm1.Controls("TextBox_1"): Set TBs(1) = UserForm1.Controls("TextBox_2"): Set TBs(2) = UserForm1.Controls("TextBox_3")
Set TBs(3) = UserForm1.Controls("TextBox_4"): Set TBs(4) = UserForm1.Controls("TextBox_5"): Set TBs(5) = UserForm1.Controls("TextBox_6")
Set TBs(6) = UserForm1.Controls("TextBox_7"): Set TBs(7) = UserForm1.Controls("TextBox_8"): Set TBs(8) = UserForm1.Controls("TextBox_9")
Set TBs(9) = UserForm1.Controls("TextBox_10"):

Dim i
For i = 0 To Amount - 1
    With ActiveDocument
        If .Bookmarks("href" & i + 1).Range = ".jpg" Then
            .Bookmarks("href" & i + 1).Range _
            .InsertBefore TBs(i)
            .Bookmarks("src" & i + 1).Range _
            .InsertBefore TBs(i)
            .Bookmarks("alt" & i + 1).Range _
            .InsertBefore TBs(i)
      End If
    End With
Next
End Sub

TextBox计数器

Private Sub AddLine_Click()    

Dim theTextbox As Object
Dim textboxCounter As Long

For textboxCounter = 1 To Amount
    Set theTextbox = UserForm1.Controls.Add("Forms.TextBox.1", "Test" & textboxCounter, True)
    With theTextbox
        .Name = "TextBox_" & textboxCounter
        .Width = 200
        .Left = 70
        .Top = 30 * textboxCounter
    End With

Next
End Sub

0 个答案:

没有答案