计数循环并报告当前迭代
Count loop and report current iteration
所以我正在制作的 Word 宏会弹出一个用户表单,您可以在其中输入数量 x(x 中的 1 个),它会根据输入的数量复制一行。 copy paste没问题,但是我需要根据数量报copy number。因此,例如,如果输入 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
我认为你的问题在于你在已经迭代了 i
的 for 循环中迭代 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
所以我正在制作的 Word 宏会弹出一个用户表单,您可以在其中输入数量 x(x 中的 1 个),它会根据输入的数量复制一行。 copy paste没问题,但是我需要根据数量报copy number。因此,例如,如果输入 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
我认为你的问题在于你在已经迭代了 i
的 for 循环中迭代 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