VBA在数据中的某个点插入行

我有这个数据透视表上面插入我的数据。 数据可以是不同的长度,所以数据透视表和不同的长度。 所以我所做的就是把数据放在表格上,也许是第30行。然后我把数据透视表插入顶端。 我接下来做的是我有一些代码来删除我的数据和数据透视表之间的所有空白行。

sub foo() dim r As Range, rows As Long, i As Long Set r = ActiveSheet.Range("A1:Z50") rows = r.rows.Count For i = rows To 1 Step (-1) If WorksheetFunction.CountA(r.rows(i)) = 0 Then r.rows(i).Delete Next End Sub 

此代码将删除所有的空白行,似乎正常工作。 既然把所有东西放在一起,我想要做的就是在我的数据透视表和我的数据之间放两行空白行,但我不知道如何确定数据透视表在哪里结束或我的数据在哪里开始。

在这里输入图像说明

所以我希望它看起来像^^^^,但现在行7和8不在那里,我的数据被推到我的数据透视表。 任何帮助表示赞赏!

我在想有人喜欢使用Rows.Count + 1或其他东西来find数据透视表的结束。 但是我不知道如何才能确定,因为后面的行中有数据。 所以也许我需要find什么时候有数据开始在列A然后插入行之前。 预先感谢您的帮助!

尝试一下:

 Public Sub Answer() Dim dataTopRowIndex As Integer Dim ptBottomRowIndex As Integer With ActiveSheet 'Note: use your worksheet's CodeName here instead, eg With Sheet1 (Active[anything], Activate, Select, Selection: evil). dataTopRowIndex = .Cells(1, 1).End(xlDown).Row With .PivotTables("PivotTable1").TableRange1 'Replace PivotTable1 by your PT's name. ptBottomRowIndex = .Row + .Rows.Count - 1 End With If (dataTopRowIndex - ptBottomRowIndex - 1) > 2 Then .Range(.Rows(ptBottomRowIndex + 1), .Rows(dataTopRowIndex - 3)).EntireRow.Delete End If End With End Sub