Excel 数据透视字段集合
我正试图:Excel 数据透视字段集合,excel,excel-2010,vba,Excel,Excel 2010,Vba,我正试图: 将数据透视表.PivotFields集合对象复制到临时 一个 对临时文件执行一些更改 然后将原始数据透视表.PivotFields集合设置为指向 新的数据透视字段集合 我正在尝试使用以下代码。当我尝试使用“新数据透视字段”时,在指示行上出现编译错误。我做错了什么?任何帮助都将受到感谢 Public Sub ChangePivotTable() Dim objPivotTable As PivotTable Dim objPivotFields As PivotFie
Public Sub ChangePivotTable()
Dim objPivotTable As PivotTable
Dim objPivotFields As PivotFields
Dim objTempPivotFields As PivotFields
'Get Pivot Table from worksheet
Set objPivotTable = Worksheets("PivotTableWorksheet").PivotTables(1)
'Set reference to PivotFields Collection of PivotTable
Set objPivotFields = objPivotTable.PivotFields
'Compile error: Invalid use of New Keyword
Set objTempPivotFields = New PivotFields
'Pass Collection by Value
Let objTempPivotFields = objPivotFields
'Make changes to Temporary PivotFields Collection
Dim intIndex As Integer
For intIndex = 6 To 2156
objTempPivotFields(intIndex).Orientation = xlDataField
objTempPivotFields(intIndex).Function = xlAverage
Next intIndex
'Set original PivotFields Collection to temporary one
Set objPivotFields = objTempPivotFields
End Sub
为什么不对当前的透视字段进行更改呢?因为表中有2100多个字段。我当前使用的代码更改了原始数据透视字段的方向和函数属性。这会触发整个透视表每次重新计算。由于数据量太大,需要花费数小时。这里有一篇关于关闭重新计算的帖子:。我99.5%确定你不能像你正在尝试的那样交换整个字段集。我尝试单击“延迟布局更新”复选框,但在尝试设置方向属性时出现错误。我不知道有一个单独的方式使用VBA。我明天试试。多谢道格。@Douglancy:我想你应该给出你的评论作为回答(在看到你的评论之前,我正准备写同样的评论);-)