Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10全般 : Excel 2016)
ピボットテーブルのデータソース更新のVBA
投稿日時: 20/06/25 11:27:37
投稿者: fukukato

こんにちは
 
ピボットテーブルのデータソース更新のみのマクロを作りたいのですが
ピボット表に空白とゆう項目を出したくない為、データソースの行の可変に対応できるようにしたく苦戦しています。
まだまだ素人なのでネットで検索したり自動記録下記で作ってみたました。
最終行をとってデータソースになる部分を変数で作成する部分は大丈夫のようですが
ピボットテーブルチェンジ以降がおかしいようで黄色くなりエラーになります。
 
Dim sourceArea As String
 Dim LastRow As Long
 
 LastRow = Worksheets("データ").Cells(Rows.Count, 2).End(xlUp).Row
  sourceArea = "データ" & "i" & ("A1:DD" & LastRow)
   
  Worksheets("ピボット").PivotTables("ピボットテーブル3").ChangePivotCache ActiveWorkbook. _
        PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        sourceArea)
 
自動記録だと下記のようになったので赤字の部分がないからかと思って入れたりしましたがダメでした。
ActiveSheet.PivotTables("ピボットテーブル3").ChangePivotCache ActiveWorkbook. _
        PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        "データ!R1C1:R33C108" _
       , Version:=6)
 
 
データソースとピボットテーブルはシートが分かれています。
どの部分ダメなのか分からない為、ご教授お願いします。
 

回答
投稿日時: 20/06/25 13:03:07
投稿者: simple

>sourceArea = "データ" & "i" & ("A1:DD" & LastRow)
 
手打ちのためのミスかもしれないが、"!"の間違いですね。
こちらに投稿する際は、VBE画面からコピーペイストしてもらうと
そうしたインプットミスが避けられますよ。
(互いに貴重な時間ですので、ノイズが入り込まない方がよいと思います。)
 
また、エラーになった場合は、エラーメッセージも貴重な情報なので、
それも書かれるとよいと思います。
 
コードの構造自体はマクロ記録と同様であれば問題なさそうに思います。
Version引数は端折らないほうがよさそうですね。
 
なお、ピボットテーブル名も半角カタカナが使われることもあり(version依存かも)、
念のため確認されたほうがよいかもしれません。

投稿日時: 20/06/25 22:13:13
投稿者: fukukato

simple様
 
ご回答ありがとうございます。
初歩的ミスでした・・・。!をiで作成していました。
 
無事実行出来ました。
貴重なお時間割いていただきありがとうございました!