2017-10-05 5 views
1

3 피벗 테이블의 리소스 데이터가 비어있는 시트가 있는지 확인하고 싶으면 피벗 테이블을 삭제하지 않고 다른 시트의 피벗 컨텐트를 지워야합니다. 현재 내 문제는 피벗 테이블이 업데이트 된 후에도 마지막 값을 제출하고 스스로 해결하지 못한다는 것입니다. 나는 그 방법이 매치하지 않는다는 항상 오류를 얻는다. 여기 내 코드는 다음과 같습니다.리소스 데이터가 비어있는 경우 피벗 제거 Clear

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 

어떤 아이디어가 잘못 되었나요?

답변

1

아래 checkthe하십시오

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 

enter image description here

enter image description here

+0

인덱스가 범위를 벗어났다는 메시지가 나타납니다 – Vedad

+0

코드를 편집했습니다. 다시 확인하십시오 –

+0

Erorr 400 시트에서 버튼을 실행할 때 VBA 환경에서 실행하면 오류 1004 – Vedad

0

시도해보십시오. 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 
+0

하나까지와 동일, 그것은, 인덱스가 범위 – Vedad

+0

한 번 분명히 피벗 테이블의 부족을 말한다 더 많은 열 공간이 필요하므로 너비가 한 열만있는 Pivottable을 사용했다면 삭제할 때 3 열의 공간이 필요합니다. 피벗 테이블 옆에있는 열에 병합 된 셀이 없거나 PT를 지울 수없는 다른 개체가 있는지 확인하십시오. –

관련 문제