さまざまな方法でピボットテーブルを自動化しようとしていますが、それぞれがエラーを表示しています。これは主に、可変範囲を作成しようとしていて、ピボットテーブルが既に使用しているスプレッドシートに存在する可能性があるためです。VBAピボットテーブルメソッド ''ワークシート 'オブジェクトの' PivotTableWizard 'が失敗しました
この最新の方法はテストスプレッドシートで機能しましたが、実際のスプレッドシートでは使用しませんでした。スプレッドシートには既にピボットテーブルがありますが、これは問題の可能性がありますか?コードがセットで停止しているobjTable = Sheet1.PivotTable
Dim objTable As PivotTable
Dim objField As PivotField
ActiveWorkbook.Sheets("Roster").Select
Range("A1").Select
Set objTable = Sheet1.PivotTableWizard
Set objField = objTable.PivotFields("Member Type")
objField.Orientation = xlRowField
Set objField = objTable.PivotFields("AIA Member Status")
objField.Orientation = xlColumnField
Set objField = objTable.PivotFields("Customer")
objField.Orientation = xlDataField
objField.Function = xlCount
Set objField = objTable.PivotFields("Expire Date")
objField.Orientation = xlPageField
objTable.PivotFields("Expire Date"). _
CurrentPage = expireyear
objTable.PivotFields("Member Type") _
.PivotItems("Cornerstone Partners").Visible = False
objTable.PivotFields("Member Type") _
.PivotItems("Honorary AIA").Visible = False
objTable.PivotFields("Member Type") _
.PivotItems("Honorary Fellow").Visible = False
objTable.PivotFields("AIA Member Status") _
.PivotItems("Proforma").Visible = False
Range("A6, A8").Select
Range("A8").Activate
Selection.Group
Range("A6").Select
objTable.PivotFields("Member Type2").PivotItems(_
"Group1").Caption = "Architect"
objTable.PivotFields("Member Type2").PivotItems(_
"Architect").ShowDetail = False
Range("A7,A8,A10").Select
Range("A7").Activate
Selection.Group
Range("A7").Select
objTable.PivotFields("Member Type2").PivotItems(_
"Group2").Caption = "Emeritus"
objTable.PivotFields("Member Type2").PivotItems(_
"Emeritus").ShowDetail = False
objTable.PivotFields("Member Type2").PivotItems(_
"Associate").ShowDetail = False
objTable.PivotFields("Member Type2").PivotItems(_
"International Associate").ShowDetail = False
objTable.PivotFields("Member Type2").PivotItems(_
"International Associate").ShowDetail = False
objTable.PivotFields("Member Type2").PivotItems(_
"Allied").ShowDetail = False
objTable.PivotFields("Member Type2").PivotItems(_
"Allied").Position = 5
objTable.PivotFields("Member Type2").PivotItems(_
"Emeritus").Position = 4
はPivotTables
を使用し、ワークシートが既存されていることを確認し、既存のピボットテーブルの場合は、事前
'.PivotTableWizard'? 'set objTable = Sheet1.PivotTables(1)'を試してください –
また、[選択を使用しないでください](http://stackoverflow.com/questions/10714251/how-to-avoid-using-select-in-excel-vba-macros )With With End With'を使用します。 – Brian
Siddarth、それでも動作しません。操作を行う前に用紙を1枚作る必要がありますか?また、ピボットテーブルがファイル内にすでに存在する場合は、インデックス番号を変更する必要がありますか? – Steven