[[20220127153241]] 『同じ作業(データコピー・貼付・ピボットテーブル』(bcv459) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『同じ作業(データコピー・貼付・ピボットテーブル更新)をシート分繰り返したいです。』(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 _

=False, Transpose
=False
Columns("A:G").Select 'A列〜G列を選択して
Selection.Delete Shift:=xlToLeft 'A列〜G列を削除
Rows("62:92").Select '先ほど貼り付けたデータの次の行から最終行を選択
Selection.Delete Shift:=xlUp '行を削除

このようなことは可能でしょうか?
ご教授いただければ幸いです。
よろしくお願いいたします。

< 使用 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.