gpt4 book ai didi

Excel通过VBA创建数据透视表

转载 作者:行者123 更新时间:2023-12-02 08:37:16 27 4
gpt4 key购买 nike

我正在通过 VBA 创建一个简单的数据透视表。我不知道我的代码有什么问题。我的代码运行没有错误,但结果不同。您能告诉我我的代码中的问题出在哪里吗?

Sub CreatePivotTable()

Dim sht As Worksheet
Dim pvtCache As PivotCache
Dim pvt As PivotTable
Dim StartPvt As String
Dim SrcData As String

'Determine the data range you want to pivot
SrcData = ActiveSheet.Name & "!" & Range("A1:B53821").Address(ReferenceStyle:=xlR1C1)

'Create a new worksheet
Set sht = Sheets.Add

'Where do you want Pivot Table to start?
StartPvt = sht.Name & "!" & sht.Range("A1").Address(ReferenceStyle:=xlR1C1)

'Create Pivot Cache from Source Data
Set pvtCache = ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:=SrcData)

'Create Pivot table from Pivot Cache
Set pvt = pvtCache.CreatePivotTable(TableDestination:=StartPvt, TableName:="PivotTable1")


pvt.PivotFields("Module").Orientation = xlRowField
pvt.PivotFields("KW").Orientation = xlColumnField

pvt.AddDataField pvt.PivotFields("Module"), "Anzahl von Module", xlCount

pvt.PivotFields("Module").PivotFilters.Add Type:=xlTopCount, DataField:=pvt.PivotFields("Anzahl von Module"), Value1:=12

End Sub

如果我手动执行,这就是我得到的结果,这就是我最终想要的。

enter image description here

我的代码给出了这个结果。这是错误的。

enter image description here

最佳答案

我认为你的问题在于你的初始范围很小,只有两列(A,B)和最后几行代码

'Determine the data range you want to pivot
SrcData = ActiveSheet.Name & "!" & Range("A1:B53821").Address(ReferenceStyle:=xlR1C1)

假设您的名字在 A 列,称为模块,B 列是带有数字的 KW(模块的 KW/h)

'Create Pivot table from Pivot Cache
Set pvt = pvtCache.CreatePivotTable(TableDestination:=StartPvt, TableName:="PivotTableTest")

pvt.AddDataField pvt.PivotFields("Module"), "Num Module", xlCount
pvt.PivotFields("Module").Orientation = xlColumnField ' not xlRowField
pvt.PivotFields("KW").Orientation = xlRowField ' not xlColumnField

您不需要最后一行。

关于Excel通过VBA创建数据透视表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31732871/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com