[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『同じ作業(データコピー・貼付・ピボットテーブル更新)をシート分繰り返したいです。』(bcv459)
下記はマクロの記録で作成した作業の内容になり、この作業をブック内の左から6番目以降のシートで繰り返したいと思っております。
Sheets("ピボットテーブル元データ").Select 'ピボットテーブルのデータ元シート選択(シート名固定)
Cells.Select '全セルを選択
Selection.Delete Shift:=xlUp 'ピボットテーブルのデータ元シートのデータをクリアする。
Sheets("22-001").Select 'シート名は毎回変わります。データをコピーするシートを選択
Range("A2:T156").Select 'コピーする範囲を選択、列数(A〜T列)は毎回同じ、最終行は毎回可変します。
Selection.Copy 'コピーして
Sheets("ピボットテーブル元データ").Select 'ピボットテーブルのデータ元シートを選択
Range("A2").Select
ActiveSheet.Paste 'コピーしたデータをセルA2へ貼付
ActiveSheet.PivotTables("ピボットテーブル1").ChangePivotCache ActiveWorkbook. _
PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"ピボットテーブル元データ!R2C1:R156C20", _
Version:=7) 'ピボットテーブルのデータソースを先ほど貼付けしたデータ範囲に変更
ActiveWorkbook.RefreshAll 'データをすべて更新
Range("A2:M61").Select '更新されたピボットテーブルの範囲を選択して
Selection.Copy 'コピーして
Sheets("22-001").Select 'シート名は毎回変わります。データを貼付するシートを選択
Range("H2").Select 'コピーしたデータをセルH2へ値として貼付
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
このようなことは可能でしょうか?
ご教授いただければ幸いです。
よろしくお願いいたします。
< 使用 Excel:Office365、使用 OS:Windows10 >
Sub 参考() For i = 6 To Worksheets.Count MsgBox Worksheets(i).Name Next End Sub
(わからん) 2022/01/27(木) 15:50
Sub test() Dim wsData As Worksheet Dim pvt As PivotTable Dim ws As Worksheet Dim k As Long
Set wsData = Worksheets("ピボットテーブル元データ") Set pvt = Worksheets("ピボットテーブル").Range("A2").PivotTable
For k = 6 To Worksheets.Count wsData.UsedRange.ClearContents Set ws = Worksheets(k) ws.Range("A2").CurrentRegion.Copy wsData.Range("A1") ws.UsedRange.Clear pvt.SourceData = wsData.Range("A1").CurrentRegion.Address(, , xlR1C1, True) pvt.RefreshTable pvt.TableRange1.Copy ws.Range("A2").PasteSpecial xlPasteValues Next Application.CutCopyMode = False
End Sub
(マナ) 2022/01/27(木) 22:13
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.