Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.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 当循环通过数据透视表时,数组仍在捕获过滤后的数据_Excel_Excel 2010_Vba - Fatal编程技术网

Excel 当循环通过数据透视表时,数组仍在捕获过滤后的数据

Excel 当循环通过数据透视表时,数组仍在捕获过滤后的数据,excel,excel-2010,vba,Excel,Excel 2010,Vba,我有一个pivot表,可以循环使用,并根据表中的信息填充一个区域。我的问题是数组仍在收集过滤掉的数据。有办法解决这个问题吗 下面是代码,让我知道我在做什么 Do While count < managerCount – 1 MGR = CStr(ActiveSheet.PivotTables(1).RowFields(1).PivotItems(MGRCount + 1).Value) late = ActiveSheet.PivotTables(1).GetPivotData("Co

我有一个pivot表,可以循环使用,并根据表中的信息填充一个区域。我的问题是数组仍在收集过滤掉的数据。有办法解决这个问题吗

下面是代码,让我知道我在做什么

Do While count < managerCount – 1 

MGR = CStr(ActiveSheet.PivotTables(1).RowFields(1).PivotItems(MGRCount + 1).Value)
late = ActiveSheet.PivotTables(1).GetPivotData("Count of Action Item ID", "Mgr", MGR, "Status to Plan", "Late").Value

If late = "" Then

     late = 0

End If

On Error GoTo ErrHandler

 lateProjects(count, 0) = MGR

 lateProjects(count, 1) = late

MGRCount = MGRCount + 1

count = count + 1

Loop
Do While count

感谢您提供的帮助。

数据透视项集合包含所有项目,即使它们未显示。但是,您可以检查
.Visible

以下是完整的代码:

Dim piv As PivotTable
Dim pivItem As PivotItem

Set piv = ActiveSheet.PivotTables(1)

Do While count < managerCount - 1
    Set pivItem = piv.RowFields(1).PivotItems(MGRCount + 1)

    If pivItem.Visible Then
        MGR = CStr(pivItem.Value)

        late = piv.GetPivotData("Count of Action Item ID", "Mgr", MGR, "Status to Plan", "Late").Value

        If late = "" Then
             late = 0
        End If

        On Error GoTo ErrHandler

        lateProjects(count, 0) = MGR
        lateProjects(count, 1) = late
        MGRCount = MGRCount + 1
    End If
    count = count + 1
Loop
Dim piv作为数据透视表
将pivItem设置为数据透视项
设置piv=ActiveSheet.PivotTables(1)
当计数<管理计数-1时执行
设置pivItem=piv.RowFields(1).数据透视项(MGRCount+1)
如果pivItem可见,则
MGR=CStr(pivItem.值)
late=piv.GetPivotData(“操作项ID计数”、“管理者”、“管理者”、“计划状态”、“延迟”)。值
如果迟到,则
迟到=0
如果结束
关于错误转到错误处理程序
延迟项目(计数,0)=经理
延迟项目(计数,1)=延迟
MGRCount=MGRCount+1
如果结束
计数=计数+1
环

或者更确切地说,当再次单步执行代码时,它看起来仍然在收集一些过滤后的数据(visible属性仍然显示为true)您是使用pivot功能进行过滤,还是只是隐藏行/列?很抱歉,响应太晚,本来应该进行过滤的,但最终我只是包含了这些值,然后给它们分配了一个零值,而不是忽略任何值为零的内容,这并没有很好地解决问题。