簡體   English   中英

使用VBA創建數據透視表-運行時錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM