因此,我正在制作的Word宏会弹出一个用户表单,您输入的数量为x(x中的1个),并根据输入的数量复制一行。复制粘贴工作正常,但我需要根据数量报告复制的编号。因此,例如,如果输入4,那么将创建四行,表示“1 of 1”,“1 of 2”,“1 of 3”和“1 of 4”而不是所有四个说“1 of x” “当他们都被复制粘贴时。基本上,x = n + 1。我正在做一个循环,但我不能让它出来。它会说1,1,1和3.我试图弄清楚它是如何执行来修复它的,所以任何关于这个循环如何运行的见解都会很棒!谢谢!
Dim i As Integer
Dim tbl As Table
Set tbl = ActiveDocument.Tables(1)
For i = 0 To Labels2.TextBox3.Value
tbl.Rows(1).Range.Copy
tbl.Rows(2).Range.Paste
i = i + 1
Set myrange = ActiveDocument.Content
myrange.Find.Execute FindText:="1 of " & Labels2.TextBox3.Value, Forward:=True
If myrange.Find.Found = True Then myrange.Text = "1 of " & i
Next i
答案 0 :(得分:0)
我认为你的问题在于你在for循环中迭代i
已经迭代i
如果Label2.TextBox3.value为4那么你的循环只会运行由于您的i = i + 1
行而导致3次。我并不完全遵循你的逻辑,但试试这个
Sub test()
Dim i As Long
Dim tbl As Table
Set tbl = ActiveDocument.Tables(1)
For i = 1 To Labels2.TextBox3.Value
tbl.Rows(1).Range.Copy
tbl.Rows(2).Range.Paste
Set myrange = ActiveDocument.Content
myrange.Find.Execute FindText:="1 of " & Labels2.TextBox3.Value, Forward:=True
If myrange.Find.Found = True Then myrange.Text = "1 of " & i
Next i
End Sub