如果资源数据为空,则清除数据透视表

我想检查一张工作表中的3个数据透视表的资源数据是否为空,如果是的话,它应该清除另一个工作表中的数据透视表内容而不删除数据透视表。 现在我的问题是,数据透视表也在更新之后提交最后一个值并且不清除它自己。 我总是得到一个方法不匹配的错误。 这是我的代码:

Dim pt As PivotTable Dim myCellRange As Range Set myCellRange = ThisWorkbook.Sheets("Data").Range("A1:A500") If ThisWorkbook.Sheets("Data").CountA(myCellRange) = 0 Then Set pt = ThisWorkbook.Sheets("Analysis").PivotTables(1) pt.ClearTable End If 

任何想法是什么错误?

请检查以下内容:

 Option Explicit Sub clearPivot() Dim pt As PivotTable Dim lastrow As Long lastrow = ThisWorkbook.Sheets("Data").Cells(Rows.Count, "A").End(xlUp).Row If lastrow = 1 Then Set pt = ThisWorkbook.Sheets("Analysis").PivotTables(1) pt.ClearTable End If End Sub 

在这里输入图像说明

在这里输入图像说明

尝试这个。 要在VBA代码中使用工作表函数,您需要从application.WorksheetFunction对象中解决它们。

 Dim pt As PivotTable Dim myCellRange As Range Set myCellRange = ThisWorkbook.Sheets("Data").Range("A1:A500") If Application.WorksheetFunction.CountA(myCellRange) = 0 Then Set pt = ThisWorkbook.Sheets("Analysis").PivotTables(1) pt.ClearTable End If