2017-09-09 1 views
1

私はvbaコードを使用してExcelシートにピボットテーブルを作成しています。 ピボット内の値を記号E、プラス記号とマイナス記号、小数点以下2桁の記号で書式設定します。例えば2.28E-10,1.1E-09,25E-3である。ピボットテーブル内のセルのフォーマット値を変更するにはどうすればよいですか?

ピボットテーブル内の参照セルはどのようにして表示されますか? またはshuoldをデータソースで参照していますか?

は、これまで

(私のコードは次の使用例は、シート1からデータを受け取り、別のシートという名前のピボットを作成し、 は、ピボットを作成します):

Set rng = Range("b7:q9")  ' 

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

それが正常に動作しません。

または多分、この1:

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

あなたは(私はあなたがする何を意味するのか理解してほしい)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 C 
+0

はそれがないこと、すべての

以下のコードを試してみてください一度に "pvt.DataBodyRange ..."行で、セルの後にはセルではありません。私は細胞の後に細胞を欲しいのですか? – ofir

+0

ピボットテーブル内のすべての値に対して、@ofir cell by cell?何のために ?別の方法でフォーマットするセルはありますか? –

+0

スレッショルドに従って緑色\赤で色付けする必要があるので、セルでセルが必要です。 – ofir

関連する問題