插入带有循环 x 次数的模板
Insert Template with Loop x Amount of Times
我带着另一个可能有简单答案的问题回来了。当涉及到循环时,我真的很沮丧,所以这就是我正在尝试构建的。
我正在构建一个表单,用户将在其中输入 1 到 156 之间的数字(命名范围 "GenNo"),然后单击“生成”按钮。
我需要一个循环来复制在电子表格的 "Template" 选项卡中构建的模板,命名范围也为 "Template",然后 插入 它进入主窗体页面指定的次数。这样,其余内容和其他命名范围应相应下推。
可能是一个非常简单的答案,但当谈到循环时我很糟糕,不知道从哪里开始。
感谢您的帮助。
编辑:此尝试仅生成一个模板,格式为:
Sub Generate()
' Check if payslips are already generated
If Sheets("Data").Range("GenLogic").Value = 1 Then
MsgBox ("Already Generated! Please clear the form and regenerate.")
Else
Sheets("Data").Range("GenLogic").Value = 1
End If
' Loop code
Do Until Sheets("Data").Range("LoopLogic").Value = Range("GenNo").Value
Sheets("Template").Range("Template").Copy
Sheets("Overpayment Form").Range("Start").Insert
Range("LoopLogic") = Cell.Value + 1
Loop
End Sub
我会试一试;请注意,我删除了您对循环变量的更新。另外,我重写了你的循环以使用 for,并在插入时向下移动。
Sub Generate()
' Check if payslips are already generated
If Sheets("Data").Range("GenLogic").Value = 1 Then
MsgBox ("Already Generated! Please clear the form and regenerate.")
Else
Sheets("Data").Range("GenLogic").Value = 1
End If
' Loop code
Dim iFrom As Long, iTo As Long, i As Long
iFrom = Sheets("Data").Range("LoopLogic").Value
iTo = Range("GenNo").Value
For i = iFrom To iTo
Sheets("Template").Range("Template").Copy
Sheets("Overpayment Form").Range("Start").Insert Shift:=xlDown
Next
End Sub
我带着另一个可能有简单答案的问题回来了。当涉及到循环时,我真的很沮丧,所以这就是我正在尝试构建的。
我正在构建一个表单,用户将在其中输入 1 到 156 之间的数字(命名范围 "GenNo"),然后单击“生成”按钮。
我需要一个循环来复制在电子表格的 "Template" 选项卡中构建的模板,命名范围也为 "Template",然后 插入 它进入主窗体页面指定的次数。这样,其余内容和其他命名范围应相应下推。
可能是一个非常简单的答案,但当谈到循环时我很糟糕,不知道从哪里开始。
感谢您的帮助。
编辑:此尝试仅生成一个模板,格式为:
Sub Generate()
' Check if payslips are already generated
If Sheets("Data").Range("GenLogic").Value = 1 Then
MsgBox ("Already Generated! Please clear the form and regenerate.")
Else
Sheets("Data").Range("GenLogic").Value = 1
End If
' Loop code
Do Until Sheets("Data").Range("LoopLogic").Value = Range("GenNo").Value
Sheets("Template").Range("Template").Copy
Sheets("Overpayment Form").Range("Start").Insert
Range("LoopLogic") = Cell.Value + 1
Loop
End Sub
我会试一试;请注意,我删除了您对循环变量的更新。另外,我重写了你的循环以使用 for,并在插入时向下移动。
Sub Generate()
' Check if payslips are already generated
If Sheets("Data").Range("GenLogic").Value = 1 Then
MsgBox ("Already Generated! Please clear the form and regenerate.")
Else
Sheets("Data").Range("GenLogic").Value = 1
End If
' Loop code
Dim iFrom As Long, iTo As Long, i As Long
iFrom = Sheets("Data").Range("LoopLogic").Value
iTo = Range("GenNo").Value
For i = iFrom To iTo
Sheets("Template").Range("Template").Copy
Sheets("Overpayment Form").Range("Start").Insert Shift:=xlDown
Next
End Sub