首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何更改枢轴表中单元格的格式值?

如何更改枢轴表中单元格的格式值?
EN

Stack Overflow用户
提问于 2017-09-09 14:58:41
回答 1查看 740关注 0票数 1

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

如何引用数据透视表中的单元格?还是说我在数据源中引用了它们?

(我的代码从sheet1中获取数据,并创建另一个名为pivot的工作表,然后创建pivot)

迄今为止:

代码语言:javascript
复制
Set rng = Range("b7:q9")     ' 

For Each cell In rng
    .Orientation = xlDataField
    .Position = 1
    .Function = xlAverage
     cell.NumberFormat = "#,##0" & "E-3"
Next cell

它不能正常工作。

或者这个:

代码语言:javascript
复制
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完成此操作。

任何帮助都将不胜感激!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-09 17:46:43

如果您打算格式化PivotTable中的所有值(我希望我理解您的意思),那么您需要使用pvt.DataBodyRange来引用PivotTable中的值。

试试下面的代码:

代码语言:javascript
复制
pvt.DataBodyRange.NumberFormat = " 0.00#" & "E-3"

编辑1:按单元循环遍历数据透视表的DataBodyRange单元:

代码语言:javascript
复制
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 C
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46131949

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档