VBAを使用してピボットテーブルを作成しようとしていますが、空のピボットテーブルを作成できるように@ Shai Radoのヘルプがあり、私は再びそれを実行しようとするとエラーが発生します:オブジェクト変数またはブロック変数が "コードのため"に設定されていない.PivotFields( "MedID") "Excel VBAランタイムエラー '91'
これは私にとって意味がありません。コードはすでに空のピボットテーブルを作成し、今ではエラーを示します。
任意の考えは?私はVBAに全く新しいですので、私は多くの「愚かな」質問がある。私は本当に任意の助けに感謝!!
Option Explicit
Sub Create_Pivot_Table()
Dim wsData As Worksheet, wsPT As Worksheet
Dim PT_Cache As PivotCache
Dim PT As PivotTable
Dim PRng As Range
Dim LastRow As Long
With ThisWorkbook
Set wsData = .Worksheets("Data")
Set wsPT = .Worksheets("Pivot Table")
End With
LastRow = wsData.Cells(wsData.Rows.Count, 1).End(xlUp).Row
MsgBox LastRow ' <-- confirm value
Set PRng = wsData.Range("A1:O" & LastRow)
' option 2: Set the Pivot Cache
Set PT_Cache = ThisWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:=PRng.Address(True, True, xlR1C1, True))
' set the Pivot Table
Set PT = PT_Cache.CreatePivotTable(wsPT.Range("D5"), "Pivot_Table_Test")
With PT
With .PivotFields("MedID")
.Orientation = xlRowField
.Position = 1
.LayoutBlankLine = False
.Subtotals(1) = False
End With
With .PivotFields("TransactionType")
.Orientation = xlColumnField
.Position = 1
.LayoutBlankLine = False
.Subtotals(1) = False
End With
With .PivotFields("Quantity")
.Orientation = xlDataField
.Function = xlCount
.Position = 1
End With
Set PT = Nothing
Set PT_Cache = Nothing
Set wsData = Nothing
Set wsPT = Nothing
Exit Sub
End With
End Sub
は思えます。 Set PT = CreatePivotTable(....が値を返していて、PTを設定しています。 – aguertin
コードの最初の行(存在する場合)としてピボット・テーブルを削除してみてください。 – aguertin
@aguertin 'PivotTable'が存在すればそれを削除する必要はなく、そうであるかどうかを確認するだけです。必要なのは更新された' PivotCache'で更新するだけです'PivotTable'を追加します。 –