我有一个数据透视表,该数据透视表使用命名范围(“ 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
谢谢, 最高
答案 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”,则效果很好。
谢谢