|
AのBookからあるデータシートを新しいBookにコピーして
ピボットを作成したいです。
毎回、範囲が可変するので変数にいれたいのですがうまくいきません。
欲しい範囲は下記なのですが
'Range("A3:E3").Select
'Range(Selection, Selection.End(xlDown)).Select
Sheets("1.尺度ごとの集計").Range("A3").CurrentRegionで範囲は大きくなりますが
表毎指定したほうが楽かと思い下記のように書きました。
Setでエラーになります。
または、SourceData:に直接書き込んでもそこでエラーになります。
書き方が間違っているのでしょうか?
ご教示お願いします。
Sub Pivot()
'
'
Dim src As Range 'データ範囲
'
Sheets("1.尺度ごとの集計").Select
Sheets("1.尺度ごとの集計").Copy
'Range("A3:E3").Select
'Range(Selection, Selection.End(xlDown)).Select
Sheets.Add
Set src = Sheets("1.尺度ごとの集計").Range("A3").CurrentRegion
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:=src _
, version:=xlPivotTableVersion15).CreatePivotTable _
TableDestination:="Sheet2!R3C1", TableName:="ピボットテーブル1", DefaultVersion _
:=xlPivotTableVersion15
Sheets("Sheet2").Select
Cells(3, 1).Select
ActiveSheet.PivotTables("ピボットテーブル1").AddDataField ActiveSheet.PivotTables( _
"ピボットテーブル1").PivotFields("個人識別番号"), "合計 / 個人識別番号", xlSum
With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("合計 / 個人識別番号")
.Caption = "データの個数 / 個人識別番号"
.Function = xlCount
End With
With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("事業署名")
.Orientation = xlRowField
.Position = 1
End With
With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("部署名")
.Orientation = xlRowField
.Position = 2
End With
With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("配属(配属先がある方のみ)")
.Orientation = xlRowField
.Position = 3
End With
ActiveSheet.PivotTables("ピボットテーブル1").TableStyle2 = "PivotStyleMedium5"
ActiveSheet.PivotTables("ピボットテーブル1").RowAxisLayout xlTabularRow
ActiveSheet.PivotTables("ピボットテーブル1").ColumnGrand = False
ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("事業署名").Subtotals = Array( _
False, False, False, False, False, False, False, False, False, False, False, False)
ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("部署名").Subtotals = Array( _
False, False, False, False, False, False, False, False, False, False, False, False)
End Sub
|
|