新しく作成したピボットテーブル内のすべてのアイテムを選択解除して1つまたは2つのアイテムだけを選択できるように説明できますか?私は以下を試した:ピボットテーブル内のすべてのアイテムをvbaを使用して選択解除する
.PivotItems("(Select All)").Visible = False
ありがとう。
新しく作成したピボットテーブル内のすべてのアイテムを選択解除して1つまたは2つのアイテムだけを選択できるように説明できますか?私は以下を試した:ピボットテーブル内のすべてのアイテムをvbaを使用して選択解除する
.PivotItems("(Select All)").Visible = False
ありがとう。
これはおそらく、あなたが欲しいものを得ることができる最も近い:
Dim i As Long
.PivotItems(1).Visible = True
For i = 2 To .PivotItems.Count
.PivotItems(i).Visible = False
Next
これは(これはそのpivotfieldを指すとの範囲内にあると仮定して)非常に最初のオプションのみ選択したオプションになります。あなたが手前で欲しいものが分かっていればそれに応じて修正してください。
ここに私が行ったことがあります。素晴らしい仕事をした。ありがとう! PivotFields( "ビジネスエリア").Orientation = xlRowField .Position = 1 i = 2の場合.PivotItems.Count .PivotItems(i).Visible = False .PivotItems(PivotTable1) Visible = True .PivotItems(i - 1).Visible = False次に、iは – Chris2015
で終わり、iは整数ではなく となります。 ActiveSheet.PivotTables( "PivotTable1")PivotFields( "ビジネスエリア") .Orientation = xlRowField .Position = 1 iに対して= 2 .PivotItems.Count .PivotItems(I - 1)へ。.Visible = Falseの .PivotItems( "火事とEMS - 制服")。Visible = True 。ピボットアイテム( "警察制服")。 Visible = True 。ピボットアイテム( "(空白)")。Visible = False 次へi End With – Chris2015
私はこのアプローチを使用していましたが、それはまだ遅すぎるが、manualupdatingをtrue(つまりPivotTable.ManualUpdate = True)にすることによって、それは耐え難いものになりました。 ここで説明します:http://stackoverflow.com/questions/764504/speed-up-pivot-table-filtering-vba-code –
以下を確認してください。特定のフィールド名のデータを選択します。デフォルトでは、少なくとも1つのアイテムを選択する必要があります。アイテムを非表示にする場合は、ピボットテーブルフィールド内の連続したアイテムだけを非表示にすることもできます。おそらく、ページの読み込み時やワークシートが開いているとき、または他のサブトリガーの場合は、特定の項目に基づいて選択する項目を選択できます。その後、あなたのコードを他のものと一緒に進めることができます。
Sub specificItemsField()
Dim pf As PivotField
Dim pi As PivotItem
Dim strPVField As String
strPVField = "Field Name"
Set pt = ActiveSheet.PivotTables(1)
Set pf = pt.PivotFields(strPVField)
Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error Resume Next
pf.AutoSort xlManual, pf.SourceName
For Each pi In pf.PivotItems
pi.Visible = True
Next pi
pf.AutoSort xlAscending, pf.SourceName
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
カスタムフィルタの選択方法です。二重ループのために遅くなることがあります。私は、各データ項目をループすると、あなたはすべての項目をループすることなく、ピボットに単一の項目にフィルタを適用したい場合は、あなたが何ができるか、多くの時間を要することがわかってきました
Dim toSelect(1 To 3) As String
toSelect(1) = "item1"
toSelect(2) = "item2"
toSelect(3) = "item3"
For Each pvItem In objField.PivotItems
For Each st In toSelect
If pvItem.Value = st Then
pvItem.Visible = True
Exit For
Else
pvItem.Visible = False
End If
Next
Next
は、次のコードを使用しています:
ActiveSheet.PivotTables("Your Pivot Name").PivotFields("Your Field Name").ClearAllFilters
ActiveSheet.PivotTables("Your Pivot Name").PivotFields("Your Field Name").PivotFilters.Add _
Type:=xlCaptionEquals, Value1:="Your string here"
これは基本的にラベルフィルタですが、私のために働きました。
常に1つのセルを選択する必要があるため、代わりにランダムセルを選択するだけですか? – PowerUser
私は、選択した2つの特定のセルだけを選択したいので、それらのすべてを選択解除してから、必要な2つだけを選択したいと思っていました。 – Chris2015
さて、あなたの現在の選択を最初に選択解除する必要は本当にありません。これら2つのセルを選択するだけで、まっすぐにスキップできますか? – PowerUser