插入带有循环x次数的模板

时间:2015-08-07 09:29:12

标签: excel vba excel-vba loops do-loops

我回答了另一个可能有简单答案的问题。当谈到循环时,我真的倒下了,所以这就是我想要建立的。

我正在构建一个表单,用户将键入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

1 个答案:

答案 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