如何使用“预定义范围”作为我的数据透视表数据源

时间:2017-11-08 14:49:07

标签: excel excel-vba pivot-table vba

我有以下代码

Dim S As Range

Set S = Range(Sheets(1).Cells(4, 2), Sheets(1).Cells(18, 9))

Sheets(4).PivotTables("PivotTable1").ChangePivotCache ThisWorkbook. _
PivotCaches.Create(SourceType:=xlDatabase, SourceData:=S, Version:=xlpivotversion14)

这给了我一个“无效的过程或参数”错误!

然而,当我使用范围而不是“S”时,如下所示:

Sheets(4).PivotTables("PivotTable1").ChangePivotCache ThisWorkbook. _
        PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        "C:\Users\Matt\Desktop\[FY19_Proposed_Sheet_V2.xlsm]Proposed Projects!R5C1:R29C18" _
        , Version:=xlPivotTableVersion14)

我没有错误!

我想使用“S”,以便我可以主动更改和更新它。代码中指定的固定范围是假设的。

谢谢, 马特!

1 个答案:

答案 0 :(得分:0)

这是因为您必须提供一个字符串,引用您希望设置为Range的{​​{1}}。以下内容适用:

SourceData

不是最短/最optimezed的代码,但它毕竟是一个样本。