[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『ピボットテーブル自動更新』(ばっさー)
VBA初心者です。
展開 シートにピボットがあります。
データ シートに元データがあります。
展開シートに 更新ボタン(マクロ)を作っておいて
押すと データを更新するには どうしたらよいでしょうか。
データ シートの範囲は固定です(A〜BL)
以下の記述ですと ピボットだけ更新されて、
データ シートの項目が増えても 展開に反映されない状態になります。
Dim pvt As PivotTable
For Each pvt In ActiveSheet.PivotTables pvt.PivotCache.Refresh Next
< 使用 Excel:unknown、使用 OS:Windows10 >
まぁ、そこはご自身で確認すれば構いませんが、SourceDataプロパティがデータ範囲を示しているので、これを現状に合わせて変更してからRefreshすれば良いでしょう。
(???) 2020/02/21(金) 11:34
初心者のため 項目が増えたのも含めて自動更新の記述を教えていただけないでしょうか。
よろしくお願いいたします。
(ばっさー) 2020/02/21(金) 11:38
Sub test() With Sheets("Sheet2") .PivotTables(1).SourceData = Sheets("Sheet1").Range("A1").CurrentRegion.Address(True, True, xlR1C1, True) .PivotTables(1).PivotCache.Refresh End With End Sub (???) 2020/02/21(金) 11:59
現在のソースデータから範囲を広げる感じにしてみました。
Sub Test_1() Dim pvt As PivotTable Dim scArea As String Dim shName As String For Each pvt In ActiveSheet.PivotTables shName = Split(pvt.SourceData, "!")(0) scArea = Sheets(shName).Range(Application.ConvertFormula(Formula:=Split(pvt.SourceData, "!")(1), _ fromReferenceStyle:=xlR1C1, toreferencestyle:=xlA1, toabsolute:=xlRelative)).CurrentRegion.Address(0, 0) pvt.ChangePivotCache ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:=shName & "!" & scArea) pvt.PivotCache.Refresh Next End Sub (ろっくん) 2020/02/21(金) 12:02
A列からBL列として、何行目からデータであり、どのシートに書いているのでしょう?
→説明が漏れてしまい申し訳ないです。
A2セルからデータがあります。
データシートに書いており、それを展開シート(ピボットがあります)に展開します。
記載いただいた記述を見て 実際にやってみます!
(ばっさー) 2020/02/21(金) 12:03
ありがとうございます!
記載いただいた記述を見ながら 実際にやってみたいと思います。
(ばっさー) 2020/02/21(金) 12:10
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.