【发布时间】:2014-04-11 13:03:34
【问题描述】:
我有一些代码可以创建一个我想要的数据透视表,但是当我尝试添加一个数据透视过滤器来过滤前十个值时,我得到一个错误:
“运行时错误 1004:应用程序定义或对象定义错误”
Sub Create_Port_Pivots(dataField, PivotLastRow, tableDest, counter)
'
' Creates pivot table on Pivot sheet
' Author: Daryl Findlay (dfind)
'
Dim objTable As PivotTable, objField As PivotField
' Select the source sheet and assign LastRow & LastCol
ActiveWorkbook.Sheets("Data").Select
LastRow = Range("A3").End(xlDown).Row
LastCol = Range("A3").End(xlToRight).Column
' Create the PivotTable object.
Set objTable = ActiveSheet.PivotTableWizard( _
SourceType:=xlDatabase, _
sourceData:=ActiveSheet.Name & "!R1C1:R" & LastRow & "C" & LastCol, _
TableDestination:="Pivot!R" & PivotLastRow & tableDest, _
TableName:="Pivot" & counter)
' Specify row and column fields.
Set objField = objTable.PivotFields("Date")
objField.Orientation = xlRowField
Set objField = objTable.PivotFields("Time Group")
objField.Orientation = xlColumnField
Set objField = objTable.PivotFields("Port Name")
objField.Orientation = xlRowField
' Specify a data field with its summary.
Set objField = objTable.PivotFields(dataField)
objField.Orientation = xlDataField
objField.Function = xlAverage
' ----------------- Filter by top 10 - Error with second param
objField.PivotFilters.Add xlTopCount, objTable.PivotFields("Port Name"), 10
End Sub
调试将这一行突出显示为问题:
objField.PivotFilters.Add xlTopCount, objTable.PivotFields("Port Name"), 10
我认为问题可能出在该函数调用的第二个参数上。任何帮助将不胜感激。
【问题讨论】:
标签: excel vba pivot pivot-table