这是我到目前为止提出的代码
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的初学者,这是我第一次尝试它。任何帮助将不胜感激。
答案 0 :(得分:2)
这可以通过以下方式实现:
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
这不会创建空行,而是会将包含数据的所有行插入到Sheet1 Row 11中。
因此,计算Sheet2上的行数,然后选择要复制的范围,最后插入Sheet1的第11行。
<强>更新:强>
Sheet2.Range("MyTable").Copy
Sheet1.Rows("11:11").Insert Shift:=xlDown
答案 1 :(得分:1)
试试这个,对我来说它很有效:
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个空行。