是否可以解釋一些方法來取消選擇新創建的數據透視表中的所有項目,以便我可以返回並僅選擇一個或兩個項目?我試過以下內容:使用vba取消選擇數據透視表中的所有項目
.PivotItems("(Select All)").Visible = False
謝謝。
是否可以解釋一些方法來取消選擇新創建的數據透視表中的所有項目,以便我可以返回並僅選擇一個或兩個項目?我試過以下內容:使用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
這將使得第一個選項是唯一選項(假設這是內與指向透視字段)。如果您事先知道自己想要什麼,請相應修改。
下面是我所用的。工作很好。謝謝! Dim i As Integer With ActiveSheet.PivotTables(「PivotTable1」)。PivotFields(「Business Area」).Orientation = xlRowField .Position = 1 For i = 2 To .PivotItems.Count .PivotItems(i).Visible = False .PivotItems( 「Fire and EMS - Uniform」)。Visible = True .PivotItems(「Police - Uniform」)。Visible = True .PivotItems(i - 1).Visible = False Next我以 – Chris2015
結尾或相當昏暗i整數 With ActiveSheet.PivotTables( 「PivotTable1」)透視字段( 「業務區域」) .Orientation = xlRowField .POSITION = 1 對於i = 2〜.PivotItems.Count .PivotItems(I - 1)。。可見=假 .PivotItems(「Fire and EMS - Uniform」)。Visible = True .PivotItems(「Police - Uniform」)。 Visible = True .PivotItems(「(blank)」)。Visible = False Next i End With – Chris2015
我已經使用這種方法,發現它仍然太慢,但通過將manualupdating設置爲true(即PivotTable.ManualUpdate = True),它使它變得可以忍受。 這裏描述:http://stackoverflow.com/questions/764504/speed-up-pivot-table-filtering-vba-code –
檢查以下內容。選擇特定字段名稱的數據。請注意,您必須至少選擇一個項目默認情況下。另外不要忘記,如果你想隱藏項目,只能隱藏數據透視表字段中的連續項目。也許在頁面加載或打開工作表或任何其他子觸發器時,可以根據特定字段選擇要選擇的特定項目。然後讓你的代碼繼續其他任何事情。
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"
這基本上是一個標籤過濾器,但它爲我工作。
你總是需要選擇一個單元格,所以如果你只是選擇一些隨機單元格而已? – PowerUser
我只想選擇兩個特定的單元格,所以我想取消選擇所有的單元格,然後只選擇我想要的兩個單元格。 – Chris2015
那麼,沒有必要先取消當前的選擇。你可以直接跳到選擇這兩個單元格嗎? – PowerUser