编写一个宏,将特定行复制到插入的行数中

时间:2014-02-20 15:36:54

标签: excel vba excel-vba row

我正在尝试编写一个宏,该宏插入我在所选行的行下指定的行数。每个新插入的行都需要复制已在工作簿中创建的一行公式(第2行)。我似乎无法弄清楚如何让宏将公式行粘贴到每个新创建的行中。我是宏的新手,非常感谢任何帮助!这就是我所拥有的(它可以用于创建行数,但只将第2行粘贴到最后创建的行中):

Sub InsertSessions
Dim Rng as long
Dim k as long
Dim rRange as Range

Set rRange = Selection

ActiveCell.EntireRow.Select

Rng = InputBox("Enter number of sessions:.")
For k = 1 To Rng
Rows(rRange.Row).Insert Shift:=xlDown, _
           CopyOrigin:=xlFormatFromLeftOrAbove
Rows(2).Copy Destination:= Rows(rRange.Row)
End Sub

如果可能的话,我也想知道如何让宏做以下两件事:

  1. 创建一个较少的行然后在选择中指示(即如果我输入4个会话,我希望只创建3行

  2. 是否有一种方法可以创建第一行以包含公式集(从“第2行”复制)和所有后续行从“第3行”复制(即如果我输入4个会话) ,第一行将复制第2行,接下来的2个插入行将复制第3行

  3. 感谢!!!

1 个答案:

答案 0 :(得分:0)

试试这个

Sub InsertSessions()
Dim Rng As Long
Dim k As Long
Dim rRange As Range

Set rRange = Selection

ActiveCell.EntireRow.Select

Rng = InputBox("Enter number of sessions:.")
For k = 1 To Rng
Rows(rRange.Row).Insert Shift:=xlDown, _
           CopyOrigin:=xlFormatFromLeftOrAbove
Call rRange.Copy(Range(Cells(rRange.Row - 1, rRange.Column), Cells(rRange.Row - 1, rRange.Column)))


Next k
End Sub