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

在特定行之后插入空行-VBA,vba,excel,Vba,Excel,这是我直到现在才想到的代码 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行之后。有办

这是我直到现在才想到的代码

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的纯初学者,这是我第一次尝试它。任何帮助都将不胜感激。

试试这个,对我来说效果很好:

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个空行。行。

试试这个,对我来说效果很好:

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个空行。世界其他地区。

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

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第11行

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

更新:

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

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

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第11行

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

更新:

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

您是否只需要在第11行之后插入一行,或者插入的行数与表行数相同?我需要插入的行数与指定表“MyTable”的行数相同。更清楚地说,“我的表格在工作簿的第2页,我想在第1页的第11行下添加整个表格。添加空行应该是实现这一目标的一个步骤。但是如果有办法添加整个”我的表格“在一个步骤中,这就更好了。您只需要在第11行之后插入一行,还是插入与表行相同的行数?我需要插入与指定表“MyTable”相同的行数。”。更清楚地说,“我的表格在工作簿的第2页,我想在第1页的第11行下添加整个表格。添加空行应该是实现这一目标的一个步骤。但是如果有办法添加整个”我的表格“一步到位就更好了。这对我来说很有意义,但我需要更具体一些。我不想复制表2中包含数据的所有行。我只想从指定的表“MyTable”复制数据。再一次,我是一个纯粹的新手,所以请对我赤裸裸…更新我的答案以反映您的评论。好的,很好,现在它正确地复制了它。。。现在我只需要找出如何正确粘贴它。。。现在它只是粘贴在sheet1上现有的数据行上,这很奇怪。。。我需要它把数据往下推。。你的回答已经很有用了,谢谢。这有点奇怪,。。。是否将Insert方法与Shift:=xlDown选项一起使用?请仔细检查您的代码,因为我已经测试了它,它按照预期的方式工作…我正在使用Shift:=xlDown选项,而该选项似乎对我不起作用。。。我试着在有和没有这个选项的情况下做这件事,它也做了同样的事情。这可能是因为我的日期来自一个外部数据库,它可能只是固定在那里,不能向下移动。我不知道为什么这会是一个问题,但我看不到你的代码不能工作的其他原因,所以我将你的答案标记为正确。我会找到一个不同的方法来做这件事。谢谢。这对我来说很有意义,但我需要更具体一些。我不想复制表2中包含数据的所有行。我只想从指定的表“MyTable”复制数据。再一次,我是一个纯粹的新手,所以请对我赤裸裸…更新我的答案以反映您的评论。好的,很好,现在它正确地复制了它。。。现在我只需要找出如何正确粘贴它。。。现在它只是粘贴在sheet1上现有的数据行上,这很奇怪。。。我需要它把数据往下推。。你的回答已经很有用了,谢谢。这有点奇怪,。。。是否将Insert方法与Shift:=xlDown选项一起使用?请仔细检查您的代码,因为我已经测试了它,它按照预期的方式工作…我正在使用Shift:=xlDown选项,而该选项似乎对我不起作用。。。我试着在有和没有这个选项的情况下做这件事,它也做了同样的事情。这可能是因为我的日期来自一个外部数据库,它可能只是固定在那里,不能向下移动。我不知道为什么这会是一个问题,但我看不到你的代码不能工作的其他原因,所以我将你的答案标记为正确。我会找到一个不同的方法来做这件事。谢谢。不幸的是,这对我来说和我的代码一样。。。可能是因为我试图将空行插入到指定的表中?为了清楚起见,这次我试图将数据从表2中的一个表复制到表1中特定行下的一个表中。在本例中,它是第11行。我们的两个代码只是在表1的末尾添加行。我很确定。Insert Shift:=xlDown需要在这里的某个地方使用,只是不确定在哪里…不幸的是,这对我来说和我的代码是一样的。。。可能是因为我试图将空行插入到指定的表中?为了清楚起见,这次我试图将数据从表2中的一个表复制到表1中特定行下的一个表中。在本例中,它是第11行。我们的两个代码只是在表1的末尾添加行。我很确定。Insert Shift:=xlDown需要在这里的某个地方使用,只是不确定在哪里。。。