ピボットテーブルを自動的に取得するために、このコードをマクロレコーダーで作成しました。記録ピボット作成マクロ(VBA)に無効な参照があるのはなぜですか?
しかし、私は再びこのコードを実行すると、エラーメッセージが表示されます。
実行時エラー1004:この行
Workbooks("works.xlsm").Connections.Add2
で無効な参照
。
このコードが記録された場合、なぜ無効な参照がありますか?記録中に、私はテーブル(R1C4:R18532C9)の名前 "データベース"を与えました。私は説明がコメントとしてコード内にある、Windowsの10およびOffice 2016
Range("D1").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
ActiveWorkbook.Names.Add Name:="database", RefersToR1C1:= _
"=Data!R1C4:R18532C9"
ActiveWorkbook.Names("database").Comment = ""
Range("D1").Select
Workbooks("works.xlsm").Connections.Add2 _
"WorksheetConnection_works.xlsm!database", "", _
"WORKSHEET;C:\Users\gabor\Documents\CAFM\VBS\works.xlsm", _
"works.xlsm!database", 7, True, False
ActiveWorkbook.PivotCaches.Create(SourceType:=xlExternal, SourceData:= _
ActiveWorkbook.Connections("WorksheetConnection_works.xlsm!database"), _
Version:=6).CreatePivotTable TableDestination:="Pivot!R1C1", TableName:= _
"Statement1", DefaultVersion:=6
Sheets("Pivot").Select
Cells(1, 1).Select
With ActiveSheet.PivotTables("Statement1").CubeFields("[database].[Person]")
.Orientation = xlRowField
.Position = 1
End With
The database table and the pivot results with xlCount and xlDistinctCount
追加しようとすると、接続は既に存在しますか? – OldUgly
行が実行された時点で "works.xlsm"が開いていますか? – YowE3K
コードを一度実行すると、 'PivotTable'がすでに作成されており、' Connection'も作成されています。したがって、コードを2回目に実行するときは、 'PivotCache'をリフレッシュし、その後、更新された' PivotCache'で 'PivotTable'をリフレッシュする必要があります。 –