|
VBA初心者です。
アクティブなワークブックの非アクティブなシート3つにそれぞれひとつずつ計3つのピボットテーブルを作成しております。
ピボットテーブルはいずれも同じデータソースを利用しており、データソースは別のワークブックにあるテーブルです。
データソースが頻繁にデータが追加されるため、アクティブシートに設置したコマンドボタンからピボットテーブルのソースをまとめて更新したいと思うのですが、ワークブックとデータソースを収納するフォルダごと他者(Excelど素人)に渡すことがあるため、絶対パスを用いず、かつ「データソースに接続できません」というエラーを出さずにピボットテーブルを更新したいのですが…
ActiveWorkbook.RefreshAll
では、フォルダごとコピーしてコピー先のデータソースを更新しても別フォルダのはずのコピー元をいつまでも参照しており失敗
Sub Commandbutton1_Click()
 
Dim DATA_SOURCE As Worksheet
Dim DATA As String
Dim wb As Workbook
Dim PvtCache As PivotCache
DATA = ThisWorkbook.Path & “\データ.xlsx”
wb = Workbooks(DATA)
Set DATA_SOURCE = wb.Worksheets(“データ”)
Set PvtCache = ActiveWorkbook.PivotCaches.Create( _
SourceType:=xlDatabase, _
SourceData:=DATA_SOURCE)
 
End Sub
これでどうだと自分なりに記述したものの全く作動せず。
頻繁にブックがフォルダごとコピーや移動されるので都度同フォルダ内のソースを取得して更新したいのですが、可能でしょうか?
教えていただければ幸いです。
|
|