如何更改数据透视表中单元格的格式值?

时间:2017-09-09 14:58:41

标签: excel-vba pivot-table vba excel

我正在使用vba代码在excel表中创建一个数据透视表。 我希望使用符号E,加号/减号和2位小数将数据库中的值格式化为科学。例如:2.28E-10,1.1E-09,25E-3。

如何引用数据透视表中的单元格? 或者我在数据源中引用它们?

(我的代码从sheet1获取数据并创建另一个名为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执行此操作。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

如果您要格式化PivotTable内的所有值(我希望我明白您的意图),那么您需要使用{{1}引用PivotTable中的值}。

尝试以下代码:

pvt.DataBodyRange

编辑1 :按单元格遍历数据透视表的pvt.DataBodyRange.NumberFormat = " 0.00#" & "E-3" 单元格:

DataBodyRange