如何动态选择工作表范围

时间:2017-07-12 04:58:41

标签: excel excel-vba pivot vba

适用于2016版本的代码仅选择工作表名称:

ActiveWorkbook.Worksheets("Summary").PivotTables("PivotTable8").PivotCache.Create(SourceType:=xlDatabase,
    SourceData:= _
            "Sheet1!R1C1:R29463CFI", Version:=xlPivotTableVersion15).CreatePivotTable TableDestination:="Sheet2!R3C1", TableName:="PivotTable1", DefaultVersion:=6

在下面的代码中,我想要取出sourcedata的范围,具体取决于工作表的活动单元格。在Excel 2016中,即使选择了整个工作表,但在Excel 2013中,只有在提供活动单元格范围时,代码才会运行。

 ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
    "Sheet1!R1C1:R29463C165", Version:=xlPivotTableVersion15).CreatePivotTable _
    TableDestination:="Sheet2!R3C1", TableName:="PivotTable1", DefaultVersion _
    :=xlPivotTableVersion15

1 个答案:

答案 0 :(得分:0)

代码就是这样的。我的版本是14。

Sub test()
    Dim Ws As Worksheet, toWs As Worksheet
    Dim Wb As Workbook
    Dim pv As PivotTable, pvCache As PivotCache

    Set Wb = ThisWorkbook
    Set Ws = Sheets(1)
    Set toWs = Sheets(2)

        Set pvCache = Wb.PivotCaches.Create(xlDatabase, Ws.Range("a1").CurrentRegion, xlPivotTableVersion14)
        Set pv = pvCache.CreatePivotTable(TableDestination:=toWs.Range("f1"))



End Sub