如何在工作表中选择单元格以创建数据透视表



我想创建一个透视表。最终,我将使用Power Automate使其每天运行。

我使用Excel中的记录宏来了解如何创建数据透视表。

Range("A1:W37").Select
Application.CutCopyMode = False
Sheets.Add
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"Sheet1!R1C1:R37C23", Version:=8).CreatePivotTable TableDestination:= _
"Sheet19!R3C1", TableName:="PivotTable2", DefaultVersion:=8
Sheets("Sheet19").Select
Cells(3, 1).Select

如何选择工作表中的所有单元格并将其存储在变量中?

然后我可以将该变量放在SourceData:=_之后(这将替换代码"Sheet1!R1C1:R37C23"(。

我在互联网上发现,我可以选择所有有数据的单元格:

Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select

你可以这样做:

Sub Tester()

Dim ws As Worksheet, wsPT As Worksheet, rngData As Range, wb As Workbook
Dim pc As PivotCache, pt As PivotTable

Set wb = ActiveWorkbook   'or some other specific workbook
Set ws = wb.Worksheets(1) 'or some other specific sheet

'same as selecting A1 and pressing Ctrl+A
Set rngData = ws.Range("A1").CurrentRegion

Set wsPT = wb.Worksheets.Add() 'get a reference to the new sheet

'create pivot cache
Set pc = wb.PivotCaches.Create(SourceType:=xlDatabase, _
SourceData:=rngData, Version:=8)
'create pivot table
Set pt = pc.CreatePivotTable(TableDestination:=wsPT.Range("A3"), _
TableName:="PivotTable2", DefaultVersion:=8)

'work with `pt`....
End Sub

如果将数据透视缓存和数据透视表的创建拆分为单独的步骤,则可以获得更多的控制权。

您可以从该URL中找到一大堆Excel VBA Pivot资源。

https://www.contextures.com/

此外,请考虑在单击需要执行的步骤时录制宏,并从宏录制器生成的代码中学习。我保证你会从这些类型的练习中学到很多东西。

最新更新