これが可能かどうかわかりませんが、ピボットフィールドをすべてピボットテーブルの値セクションに追加するマクロを設計しようとしています数字またはパーセント。ここでExcel VBAピボットフィールドを数値またはパーセンテージとしてフォーマットする必要があるかどうかを確認します。
は、私がこれまで持っているものです。
If MsgBox("Do you want to add all pivot table fields as values?", vbOKCancel + vbQuestion, "Accept/Reject") = vbCancel Then
Exit Sub
End If
Dim pt As PivotTable
Dim pf As PivotField
Dim pivotTableName As String
On Error Resume Next
Set pt = ActiveCell.PivotTable
If pt Is Nothing Then
pivotTableName = InputBox("Enter the pivot table name.")
Set pt = ActiveSheet.PivotTables(pivotTableName)
End If
For Each pf In pt.PivotFields
pt.AddDataField pt.PivotFields(pf.Name), pf.Name & " ", xlSum
pt.PivotFields(pf.Name & " ").NumberFormat = "#,##0"
Next pf
しかし、次の私は、if文のフィールドではなくパーセンテージとしてフォーマットする必要があるかどうかを確認するために追加したいと思います。 私のアイデアは以下の通りであった。
チェックインフィールドに単一のレコード値は、それが100%未満であるかどうかを確認するために(または1)
(これは私がでてる状況の95%に理想的です)
フィールドの合計が、そのような< 100(完璧ではない)などの任意の数未満であることを確認し
チェックフィールドの名前がそれに%を持っている場合(私はおそらく一緒に行く必要がありますどのような)
各fld i nは、それぞれの場合pt.PivotFields
InStr関数(fld.Value、 "%")なら、
次
フィールドが計算フィールドである場合は、チェック(完璧ではない)
は中FLD pt.PivotFields
fld.IsCalculated場合、
次
最初の2つは可能ですか?誰かより良いアイデアがありますか?
ありがとうございます!
P.S. 私が興味を持ったもう一つのことは、フィールドにテキストが含まれているかどうか、またはフィールドが合計できないかどうかを確認することです。
誰かがより良い答えを与えるまで、あなたがアイテムをループの中に見ることができますPivotField https://msdn.microsoft.com/en-us/library/office/ff820762.aspx(多分pivotTable1.ColumnFields(1).ChildItems(1).Value) – Slai
ありがとう、私はアイデア、私はフィールドを合計しようとすると、エラーがなければそれはテキストでなければならないmmedフィールドをピボットテーブルに追加し、値を確認してフォーマットします。 –
合計はテキスト値を無視しますが、そうでない関数もあります。私はpivotFieldの値を1つずつチェックして合計することを考えていました – Slai