在特定行之后插入空行 – VBA

这是我直到现在提出的代码

Sub RunMe() Dim x As Integer Dim sv As Integer x = 11 sv = Range("MyTable").Rows.Count Do Rows(x).Resize(sv).Insert x = x + sv Loop Until IsEmpty(Cells(x, "A")) End Sub 

所以基本上这应该是在第11行插入空白单元格。但问题是它只是在表末尾添加空白单元格,而不是第11行。有没有办法解决这个问题? 我是VBA的纯粹初学者,这是我第一次尝试它。 任何帮助将不胜感激。

这可以通过以下方式实现:

 LastRow = Sheet2.Cells(Sheet2.Rows.Count, "A").End(xlUp).Row Sheet2.Range("A1:K" & LastRow).Copy 'amend to include the number of columns, also change 1 to 2 if using header and don't want to include them Sheet1.Rows("11:11").Insert Shift:=xlDown 

这不会创build空行,而是将所有包含数据的行插入到Sheet1 Row 11中。

因此计算Sheet2上的行数,然后select要复制的范围,最后插入到Sheet1的第11行。

更新:

 Sheet2.Range("MyTable").Copy Sheet1.Rows("11:11").Insert Shift:=xlDown 

试试这个,对我来说,它工作得很好:

 Sub RunMe() Dim x As Integer Dim sv As Integer x = 11 sv = Range("MyTable").Rows.Count + 1 Rows(x).Resize(sv).Insert End Sub 

如果该表有23行,则在第10行之后插入23个空行。