我正在使用vba代码在excel表中创建一个枢轴表。我希望枢轴中的值被格式化为科学,有一个符号E,加/减符号和小数点2位。例如: 2.28E-10,1.1E-09,25E-3。
如何引用数据透视表中的单元格?还是说我在数据源中引用了它们?
(我的代码从sheet1中获取数据,并创建另一个名为pivot的工作表,然后创建pivot)
迄今为止:
Set rng = Range("b7:q9") '
For Each cell In rng
.Orientation = xlDataField
.Position = 1
.Function = xlAverage
cell.NumberFormat = "#,##0" & "E-3"
Next cell它不能正常工作。
或者这个:
Dim pvt As PivotTable
Dim pff As PivotField
Dim pi As PivotItem
With pff
For Each pi In pff.PivotItems
pi.DataRange.NumberFormat = " 0.00#" & "E-3"
'pvt.DataBodyRange.NumberFormat = "0.00#"
Next pi
End With请建议如何使用vba完成此操作。
任何帮助都将不胜感激!
发布于 2017-09-09 17:46:43
如果您打算格式化PivotTable中的所有值(我希望我理解您的意思),那么您需要使用pvt.DataBodyRange来引用PivotTable中的值。
试试下面的代码:
pvt.DataBodyRange.NumberFormat = " 0.00#" & "E-3"编辑1:按单元循环遍历数据透视表的DataBodyRange单元:
Dim PvtRng As Range, C As Range
Set PvtRng = pvt.DataBodyRange ' <-- set the Pivot Data range
For Each C In PvtRng ' loop cell by cell inside the Pivot-Table's DataBodyRange
C.NumberFormat = " 0.00#" & "E-3"
Next Chttps://stackoverflow.com/questions/46131949
复制相似问题