命名范围更改时,数据透视表不刷新[VBA]

时间:2018-07-18 12:58:51

标签: excel vba excel-vba

我有一个数据透视表,该数据透视表使用命名范围(“ FP_Area”)作为数据源。我有一个代码,可以通过删除它来更新此命名范围,并使用新数据重新创建。

我的问题是,当我使用以下代码刷新数据透视表时,它无法正确刷新并使用了旧命名范围(“ FP_Area”)中的旧数据

这是我更新数据透视表的方法:

Sub Test1_Refresh()

    Dim Pivot_sht As Worksheet
    Dim PivotName As String

   'Set Variables Equal to Data Sheet and Pivot Sheet
    Set Pivot_sht = ThisWorkbook.Worksheets("1")

   'Enter in Pivot Table Name
    PivotName = "Test1"

   'Change Pivot Table Data Source Range Address
    Pivot_sht.PivotTables(PivotName).ChangePivotCache _
        ThisWorkbook.PivotCaches.Create( _
            SourceType:=xlDatabase, _
                 SourceData:="FP_Area")

   'Ensure Pivot Table is Refreshed
    Pivot_sht.PivotTables(PivotName).RefreshTable
End Sub

但是,它仍然使用旧的“ FP_Area”数据。

我正在使用此版本:      Microsoft Excel 2010(14.0.7109.5000)Microsoft Office Professional的一部分      加上2018

谢谢, 最高

1 个答案:

答案 0 :(得分:0)

我刚发现重新创建命名范围时必须使用“偏移”功能。

Dim x As String
'Retrieve the pre-built Offset function
x = Worksheets("SYS_Parameter").Range("I27")
'Create a name
ActiveWorkbook.Names.Add Name:="zTest", RefersTo:=x

因此,在我之前的代码中,如果我将“ FP_Area”替换为“ x”,则效果很好。

谢谢