Sha*_*han 5 excel vba pivot-table excel-vba
我正在通过VBA创建一个简单的Pivot表.我不知道我的代码有什么问题.我的代码运行没有错误,但结果是不同的.你能否告诉我我的代码中的问题在哪里?
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
Run Code Online (Sandbox Code Playgroud)
如果我手动完成,这就是我得到的结果,这就是我想要的结果.
我的代码给了我这个结果.哪个错了.
小智 0
添加计算字段后尝试添加 xlRowField 和 xlColumnField 。
例如
第一的
pvt.AddDataField pvt.PivotFields("Module"), "Anzahl von Module", xlCount
Run Code Online (Sandbox Code Playgroud)
然后
pvt.PivotFields("Module").Orientation = xlRowField
pvt.PivotFields("KW").Orientation = xlColumnField
Run Code Online (Sandbox Code Playgroud)