2017-08-25 16 views
0

vbaを使用してExcelのピボットテーブルのデータソースを変更しています。私は、以下のこのコードを持っているが、それはこのラインで型の不一致エラーを返します: 設定pvtcache = ThisWorkbook.PivotCaches.Create(のSourceType:= xlDatabase、 SourceData:= DataRange)VBAを使用してピボットテーブルデータソースを変更する際のエラー

は、ここで私はまた、各種から得た私のスクリプトですgoogleとstackoverflowのソリューション。

Dim Data_sht As Worksheet 
Dim Pivot_sht As Worksheet 
Dim StartPoint As Range`` 
Dim DataRange As Range 
Dim PivotName As String 
Dim NewRange As String 
Dim pvtcache As PivotCache 


Set Data_sht = wb.Sheets("FINAL_DATA") 
Set Pivot_sht = wb.Worksheets("Summary") 

PivotName = "PivotTable1" 

'Dynamically Retrieve Range Address of Data 
Set StartPoint = Data_sht.Range("A1") 
Set DataRange = Data_sht.Range(StartPoint, 
StartPoint.SpecialCells(xlLastCell)) 

NewRange = Data_sht.Name & "!" & _ 
DataRange.Address(RowAbsolute:=True, ColumnAbsolute:=True, 
ReferenceStyle:=xlR1C1, External:=True) 

'Change Pivot Table Data Source Range Address 

Set pvtcache = ThisWorkbook.PivotCaches.Create(SourceType:=xlDatabase, 
SourceData:=DataRange) 
With Pivot_sht 
    .PivotTables(PivotName).ChangePivotCache pvtcache 
End With 

'Refresh Pivot Table 
Pivot_sht.PivotTables(PivotName).RefreshTable 

'Message 
MsgBox PivotName & "'s data source range has been successfully updated!" 
+0

ルックピボットキャッシュを作成し、変更します – teylyn

答えて

0

のみこれらの行が正常に.... http://www.contextures.com/xlPivot11.html#newcacheで

Set pvtcache = ThisWorkbook.PivotCaches.Create(xlDatabase, Data_sht.Name & "!" & Data_sht.Range("A1").CurrentRegion.Address) 
Pivot_sht.PivotTables(1).ChangePivotCache pvtcache 
関連する問題