0

我有一个使用命名范围(“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 Plus 2018 的一部分

谢谢,马克斯

4

1 回答 1

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

所以在我之前的代码中,如果我用“x”替换“FP_Area”,它就可以完美地工作。

谢谢

于 2018-07-18T17:27:40.857 回答