EXCEL VBA,多个合并范围。无法将refence更改为从名称到索引的工作表

时间:2017-11-27 15:51:46

标签: excel-vba pivot-table vba excel

这是我无法弄清楚的事情。

我正在新工作表上创建一个来自多个范围的轴。

这有效:

arr = Array(Array("US!R6C2:R17C23", "US"), Array("Japan!R6C2:R17C23", "Japan"), Array( _
    "Other1!R6C2:R17C23", "Other1"), Array("Other2!R6C2:R17C23", "Other2"), Array( _
    "EU!R6C2:R17C23", "EU"))
ActiveWorkbook.PivotCaches.Create(SourceType:=xlConsolidation, SourceData:=arr, Version:=6).CreatePivotTable TableDestination:= _
    "", TableName:="PivotTable9", _
    DefaultVersion:=6

这不起作用:

arr = Array(Array(Worksheets(2).Range("B6:W17"), "US"), Array("Japan!R6C2:R17C23", "Japan"), Array( _
    "Other1!R6C2:R17C23", "Other1"), Array("Other2!R6C2:R17C23", "Other2"), Array( _
    "EU!R6C2:R17C23", "EU"))ere
ActiveWorkbook.PivotCaches.Create(SourceType:=xlConsolidation, SourceData:=arr, Version:=6).CreatePivotTable TableDestination:= _
    "", TableName:="PivotTable9", _
    DefaultVersion:=6

区别在于我如何尝试引用第一部分:

Array(Worksheets(2).Range("B6:W17"), "US"))

VS

Array("US!R6C2:R17C23", "US")

任何有助于理解为什么我无法做出这种改变以及我需要做什么的帮助都会很棒。

1 个答案:

答案 0 :(得分:1)

我没有使用Consolidation方法创建数据透视表......它有很多限制,同时存在更好的替代方案,包括:

  1. 使用VBA将所有数据从单独的表格混合到一个表格中。请参阅https://stackoverflow.com/a/47279374/2507160
  2. 使用PowerQuery执行相同操作。请参阅https://stackoverflow.com/a/47170312/2507160