所以我已经记录了这个数据透视表,并通过vba改变了一下。工作正常,虽然我在添加计数方面遇到了一些问题" id"作为一种价值。 无论如何工作正常,但令我烦恼的是它的外观。它笨拙而凌乱。 你介意帮我把它弄好吗?
代码片段:
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"id!R1C2:R65536C2", Version:=xlPivotTableVersion10). _
CreatePivotTable TableDestination:="temp!R1C1", TableName:= _
"Tabela przestawna5", DefaultVersion:=xlPivotTableVersion10
With ws2
.PivotTables("Tabela przestawna5").AddDataField ws2. _
PivotTables("Tabela przestawna5").PivotFields("id"), _
"Licznik z id", xlCount
With ws2.PivotTables("Tabela przestawna5").PivotFields("id" _
)
.Orientation = xlRowField
.Position = 1
End With
.Columns("A:B").Copy
.Columns("A:B").PasteSpecial Paste:=xlPasteValues
End With
它的意图:
从" id"中取出一列数据。 sheet(ws1)并制作一个数据透视表,将其置于" temp" sheet(ws2)和复制/粘贴值(要过滤它+放一些公式)。
<德尔> 1。我似乎无法在没有选择工作表的情况下使用数据透视表进行任何更改 - 这是真的吗?
2.提到添加Count的问题 - 这就是为什么我最终分开完成它的原因
对我来说它看起来像一张纸:/
我是VBA的新人,所以我很感激任何帮助。
(如果重要的话,可以使用excel 2007)
答案 0 :(得分:0)
以下是您的代码重新格式化:
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, _
SourceData:="id!R1C2:R65536C2", _
Version:=xlPivotTableVersion10).CreatePivotTable _
TableDestination:="temp!R1C1", _
TableName:="Tabela przestawna5", _
DefaultVersion:=xlPivotTableVersion10
ws2.PivotTables("Tabela przestawna5").AddDataField _
ws2.PivotTables("Tabela przestawna5").PivotFields("id"), "Licznik z id", xlCount
With ws2.PivotTables("Tabela przestawna5").PivotFields("id")
.Orientation = xlRowField
.Position = 1
End With
ws2.Columns("A:B").Copy
ws2.Columns("A:B").PasteSpecial Paste:=xlPasteValues
但我真的不明白为什么你的AddDataField计数有问题...你能告诉我们更多的PLZ吗?