Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用excel VBA隐藏数据透视表项_Vba_Excel - Fatal编程技术网

使用excel VBA隐藏数据透视表项

使用excel VBA隐藏数据透视表项,vba,excel,Vba,Excel,我想检查列A和列E的值,然后根据这些值折叠透视表 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.

我想检查列A和列E的值,然后根据这些值折叠透视表

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
数据透视项正在查找索引。因此,我已经遍历了所有这些文件,以查看FF是否与它们的名称匹配。如果它这样做,它将隐藏细节


让我知道这是否有效。

我尝试了这个,但仍然不起作用。我认为还有一个问题与选择范围有关。我只想比较同一行。第A5行和第E5行不是每一个组合。我用下面的一个更新了我的编码,现在没有错误,但也没有发生任何事情。myfile.Sheets3。如果LeftActiveSheet.RangeA&I.Value,请选择Dim I,只要Dim ff作为I=5到5000的字符串,1=F和ActiveSheet.Range&i.Value=0.00,则ff=LeftActiveSheet.RangeA&i.Value,10如果ff,则ff=ActiveSheet.PivotTables数据透视表1.PivotFieldsRef 1.PivotItemsff.ShowDetail=False下一步我已经更新了上述答案。让我知道它是否有效。