我回答了另一个可能有简单答案的问题。当谈到循环时,我真的倒下了,所以这就是我想要建立的。
我正在构建一个表单,用户将键入1到156之间的数字(命名范围" GenNo")并单击Generate按钮。
我需要一个循环来复制一个内置于"模板"带有命名范围的电子表格的选项卡也是"模板",然后将插入主表单页面指定的次数。这样,应该相应地推下其余内容和其他命名范围。
可能是一个非常简单的答案,但是当谈到循环并且不知道从哪里开始时我很可怕。
感谢您的帮助。
编辑:此尝试仅以以下形式生成一个模板:
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
答案 0 :(得分:0)
我会试一试;请注意,我删除了您的循环变量的更新。另外,我已经重写了你的循环以使用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