[英]Creating pivot table using vba - run time error
我正在嘗試使用vba創建數據透視表。 以下是我嘗試過的代碼:
Sub CreatePivot()
Dim objTable As PivotTable
Dim objField As PivotField
Dim ws As Worksheet
Set ws = Worksheets.Add
Sheets(ws.Name).Name = "Write-Off Pivot"
' Select the sheet and first cell of the table that contains the data.
ActiveWorkbook.Sheets("GEP Write-Offs Rawdata").Select
Range("A1").Select
Set objTable = ws.PivotTableWizard
' Specify row and column fields.
Set objField = objTable.PivotFields("MPG")
objField.Orientation = xlRowField
' Specify a data field with its summary
' function and format.
Set objField = objTable.PivotFields("'A_780610 - Inventory - Obsolescence")
objField.Orientation = xlDataField
objField.Function = xlSum
objField.NumberFormat = "$ #,##0"
End Sub
我收到此錯誤消息。 “運行時錯誤'104'”“對象'_worksheet'的方法'數據透視表'失敗”
問題似乎出在這條線上,但無法確定是什么原因造成的。
Set objTable = ws.PivotTableWizard
您的下一行需要更改。
Set objTable = ws.PivotTableWizard
這應該指向數據源表。 應該是這樣。
Set objTable = Sheets("GEP Write-Offs Rawdata").PivotTableWizard
自從您執行命令以來,它將創建數據透視表並寫入新添加的工作表中
Set ws = Worksheets.Add
Sheets(ws.Name).Name = "Write-Off Pivot"
未鏈接。請進行適當修改。
這是@Rory建議的內容。
您需要使用Use ActiveSheet.Pivottablewizard
而不是ws.PivotTableWizard
因為ws
表上沒有任何數據。
順便說一下,這是不必要的麻煩:
Sheets(ws.Name).Name = "Write-Off Pivot"
所有你需要的是:
ws.Name = "Write-Off Pivot"
PivotTableWizard方法需要一些參數:
像這樣:
Set objTable = ws.PivotTableWizard(xlDatabase, ActiveWorkbook.Worksheets("Table8").Range("A1:A5"), ws.Range("A1:A6"))
有很多參數,例如,您需要數據源類型,數據源和數據目標。
如果僅在es.PivotTableWizard之后打開“(”,則可以看到所有參數,也可以在此處獲取它們:
https://msdn.microsoft.com/de-de/library/office/ff839228.aspx
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.