advanced help
per page, with , order by , clip by
Results of 1 - 1 of about 2420 for ピボットテーブル (0.004 sec.)
[[20201029142438]]
#score: 4770
@digest: 598bd3a76b9400fe2aa437be696b1ad9
@id: 85635
@mdate: 2020-11-03T13:02:14Z
@size: 3496
@type: text/plain
#keywords: pivottables (10792), ス先 (9626), pivotcache (7739), 口) (7389), 更' (5831), 山口 (5746), sourcedata (5328), 要変 (4577), ピボ (4486), refresh (4111), タソ (3739), トテ (3667), タベ (3417), ーブ (3084), テー (3000), (山 (2530), ベー (2380), ブル (2314), ボッ (2083), 動更 (1960), ト") (1663), ト" (1413), enableevents (1396), テス (1368), ット (1314), ース (1277), デー (973), 命令 (963), 元デ (938), 2020 (908), トシ (871), ル自 (863)
『VBA ピボットテーブル自動更新』(山口)
ピボットテーブルの自動更新がうまくいきません。 下記コードにてテストシートのデータが変更になれば、 ピボットテーブルを自動で変更したいのですが、 どのようにすれば良いですか? Private Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False Worksheets("テスト").PivotTables("テスト").PivotCache.Refresh Application.EnableEvents = True End Sub < 使用 Excel:unknown、使用 OS:unknown > ---- 元データとピボットテーブルは、同じシート(テスト)にあるのでしょうか。 (マナ) 2020/10/29(木) 19:51 ---- 元データは別のシートにあります。 初歩的な質問で申し訳ありません。 よろしくお願いします。 (山口) 2020/10/30(金) 06:28 ---- >元データは別のシートにあります。 そういうことであれば、もしかしてピボットテーブルに"テスト"なんて名前もついてなかったりしませんか? また、Changeイベントがダメとは言いませんが、ピボットテーブルのあるシートがアクティブになったときに処理すれば十分だったりしませんか? このほか、使用Excel:unknownとなっているので該当するかわかりませんが、office365でマクロの記録でExcel君にコードを作ってもらってから改造してみると、↓のような命令で更新することができることがわかります。 Worksheets("別のシート").PivotTables(1).PivotCache.Refresh よって、まずはご自身もマクロの記録を使って、どのような命令をすればよいのか探ってみてはいかがでしょうか? (もこな2 ) 2020/10/30(金) 07:18 ---- ありがとうございます。 データベースが増えたりしたときに、 データベースの範囲の変更などできるのでしょうか? (山口) 2020/10/31(土) 17:29 ---- データベースのあるシートモジュールに記載します。 データベースの範囲はCurrentRegionで規定しているので、 矩形の範囲であり、周囲すべてが別のデータから分離して(空白行・列で囲まれて)いること。 データベースはテーブルであっても上記条件が必要。 途中に行挿入をした場合はその行にデータを入力するまで、範囲が狭くなります。 Private Sub Worksheet_Change(ByVal Target As Range) Const データベース先頭 = "A1" '要変更 'データベースの左上隅のセル名 Const ピボット = "ピボットシート" '要変更 'ピボットテーブルのあるシート名 Dim r As Range Set r = Range(データベース先頭).CurrentRegion If Intersect(Target, r) Is Nothing Then 'データ内orデータ行削除の判定 If Intersect(Target, r.Offset(1)) Is Nothing Then Exit Sub End If Application.EnableEvents = False '自身のシートにpivotがある場合のevents防止 With Sheets(ピボット) .PivotTables(1).SourceData = r.Address(, , , True) .PivotTables(1).RefreshTable End With Application.EnableEvents = True End Sub (kazuo) 2020/10/31(土) 23:05 ---- ミスあります。 > .PivotTables(1).SourceData = r.Address(, , , True) は .PivotTables(1).SourceData = r.Address(, , r1c1, True) 他にもバグありボツにして下さい。 (kazuo) 2020/11/01(日) 07:45 ---- 実験してみましたが、 ピボットテーブルのデータソースの範囲をテーブルにしておけば テーブルの行/列の追加・挿入はExcelが勝手に対応してくれるので、 マクロでやらなきゃいけないのは Worksheets("Sheet2").PivotTables("ピボットテーブル1").PivotCache.Refresh だけです。 大事になのは、 1) データソースのテーブルのあるシートの Changeイベントに書く 2) ピボットテーブルのあるシート名、ピボットテーブル名を間違いなく書く ことです (´・ω・`) 2020/11/01(日) 10:58 ---- ありがとうございました! データソースの範囲をテーブルにする、とても勉強になりました。 またよろしくお願いします。 (山口) 2020/11/03(火) 22:02 ...
http://www.excel.studio-kazu.jp/wiki/kazuwiki/202010/20201029142438.txt - [detail] - similar
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 97004 documents and 608067 words.

訪問者:カウンタValid HTML 4.01 Transitional