簡體   English   中英

使用Excel VBA隱藏數據透視表項

[英]Hide pivot table items using excel VBA

我想檢查Colum A和Column E的值,然后根據這些值折疊Pivot表。

myfile.Sheets(3).Select
Dim dd As Range
Dim ee As Range
Dim ff As String
     For Each ee In myfile.Sheets(3).Range("E1:E20000")
     For Each dd In myfile.Sheets(3).Range("A1:A20000")
         With ee
            If Left(dd.Value, 1) = "F" And ee.Value = "0.00" Or ee.Value = "(0.00)" Then ff = Left(dd.Value, 10)
            ActiveSheet.PivotTables(1).PivotFields("Ref 1").PivotItems(ff).ShowDetail = False
        End With
     Next
     Next

我認為這是錯誤發生的地方。 特別是變量ff。

ActiveSheet.PivotTables(1).PivotFields("Ref 1").PivotItems(ff).ShowDetail = False

嘗試將字符串放入引號中。

ActiveSheet.PivotTables(1).PivotFields("Ref 1").PivotItems(""" & ff & """).ShowDetail = False

同樣,如果未設置FF,它仍然會嘗試折疊支點。 因此,請嘗試將其放入if語句中,以便if FF <> "" then .....showdetails = false

編輯更新的代碼,它應該可以工作。

myFile.Sheets(3).Select
Dim i As Long
Dim ff As String

For i = 5 To 5000
    If Left(ActiveSheet.Range("A" & i).Value, 1) = "F" And ActiveSheet.Range("E" & i).Value = "0" Then
        ff = Left(ActiveSheet.Range("A" & i).Value, 10)
        If ff <> "" Then
            For j = 1 To ActiveSheet.PivotTables("PivotTable1").PivotFields("Ref 1").PivotItems.Count
                If ActiveSheet.PivotTables("PivotTable1").PivotFields("Ref 1").PivotItems(j).Name = ff Then
                    ActiveSheet.PivotTables("PivotTable1").PivotFields("Ref 1").PivotItems(j).ShowDetail = False
                End If
            Next
        End If

    End If
Next i

ivotItems正在尋找索引。 因此,我遍歷了所有這些對象,以查看FF是否與它們的名稱匹配。 如果這樣做,它將隱藏細節。

讓我知道這個是否奏效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM