2014-11-21 56 views
0

我只是在学习VBA,所以还不完全熟悉它。如何创建只有在不存在的情况下才创建数据透视表的VBA

我想创建一个动态范围数据透视表,只有当数据透视表不存在。如果表已经存在,那么枢轴突出部分需要刷新。

到目前为止,我有这样的:

Sub CreatingPivot() 
Dim PCache As PivotCache, LastRow As Long, pt As PivotTable 
    Dim ws As Worksheet 

    On Error Resume Next 
    Set ws = Sheets("Pivot") 
    If Err.Number <> 0 Then 
     Worksheets("Sheet1").Activate 
Set PCache = ActiveWorkbook.PivotCaches.Create(SourceType:=1, SourceData:=Range("A1").CurrentRegion.Address) 
    Worksheets.Add 
    ActiveSheet.Name = "Pivot" 
    ActiveWindow.DisplayGridlines = False 
Set pt = ActiveSheet.PivotTables.Add(PivotCache:=PCache, TableDestination:=Range("A1"), TableName:="PivotTable1") 

    Else 
     Sheets("Pivot").RefreshTable 
    End If 
End Sub 

回答

1

试着这么做:

Dim PivTbl as PivotTable 

On Error Resume Next 
    Set PivTbl = Sheets("Pivot").PivotTables("PivotTable1") 
On Error Goto 0 
    If PivTbl Is Nothing Then 
     'Create pivot table 
    End If 
'Do your stuff 

编辑OP COMMENT /跟踪预览Q

刷新数据透视表不是工作表

Dim PivTbl As PivotTable 

    Set PivTbl = Sheets("Pivot").PivotTables("PivotTable1") 

    PivTbl.RefreshTable 
+0

我已经试过这个,但我仍然无法获得枢轴刷新时,枢轴已经存在。还有其他建议吗? – 2014-11-21 16:28:48

+0

@Julie Routley - 请参阅编辑以回答。 – barryleajo 2014-11-21 16:45:29

相关问题