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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.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 运行时错误';5';使用VBA在数据透视表中循环时_Excel_Vba_Filter_Pivot Table - Fatal编程技术网

Excel 运行时错误';5';使用VBA在数据透视表中循环时

Excel 运行时错误';5';使用VBA在数据透视表中循环时,excel,vba,filter,pivot-table,Excel,Vba,Filter,Pivot Table,我想循环浏览“名称”过滤器上的所有选项并导出该信息。它在前五个运行时正常工作,然后出现运行时错误“5”:此行的调用或参数无效:.PivotFields(“Name”).CurrentPage=pi.SourceName 在MsgBox pi.SourceName中,SourceName会正确更新前五条记录。然后,对于第六条记录,它将恢复到第四条记录(“ABC Tile,Inc-父公司,加利福尼亚州莫德斯托”),而不是“ACE Building Materials”,然后我得到运行时错误 正如您将

我想循环浏览“名称”过滤器上的所有选项并导出该信息。它在前五个运行时正常工作,然后出现运行时错误“5”:此行的调用或参数无效:
.PivotFields(“Name”).CurrentPage=pi.SourceName

MsgBox pi.SourceName
中,SourceName会正确更新前五条记录。然后,对于第六条记录,它将恢复到第四条记录(“ABC Tile,Inc-父公司,加利福尼亚州莫德斯托”),而不是“ACE Building Materials”,然后我得到运行时错误

正如您将看到的,我尝试重置(并清除)“Name”但无效

以下是完整的代码:

Sub Button1_Click()

Dim pf As PivotField
Dim pi As PivotItem
Dim SourcePivottable As PivotTable
Dim DestinationRange As Range
Dim aCell As Range
Dim myFileName As String
Dim myARName As String

With ActiveSheet.PivotTables("PivotTable1")

    .PivotFields("Name").ClearAllFilters

    Set pf = .PivotFields("Name")
    
    For Each pi In pf.PivotItems
    '       .PivotFields("Name").CurrentPage = "(All)"
    MsgBox pi.SourceName
    .PivotFields("Name").CurrentPage = pi.SourceName


    '     Copies Pivot
    Set SourcePivottable = Worksheets("Pivot").PivotTables(1)
    Set DestinationRange = Worksheets("2020 Qtr2").Range("A4")

    SourcePivottable.TableRange1.Copy
    With DestinationRange.Offset( _
    SourcePivottable.TableRange1.Row - SourcePivottable.TableRange2.Row, 0)
    .PasteSpecial Paste:=xlPasteValues
    .PasteSpecial Paste:=xlPasteFormats
    .PasteSpecial Paste:=xlPasteColumnWidths
    End With


    '     Saves file
    wb.SaveAs "I:\filepath\" & myARName & "_" & myFileName & 
    ".xlsx"
    wb.Close
    Workbooks("Generator.xlsm").Activate

    Next
    End With

    End Sub
我认为这可能与信息的过滤方式有关,但这似乎不是问题所在。如有任何见解,将不胜感激