Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.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数据透视表错误_Excel_Vba_Pivot Table - Fatal编程技术网

Excel 更新循环中的表时发生VBA数据透视表错误

Excel 更新循环中的表时发生VBA数据透视表错误,excel,vba,pivot-table,Excel,Vba,Pivot Table,我在excel文件上执行1透视表循环时遇到一个问题: 我只想将model2从IJ更改为CV For i = 7 To 11 ActiveSheet.PivotTables("Tabela dinâmica1").PivotFields("MODEL2").CurrentPage _ = "(All)" With ActiveSheet.PivotTables("Tabela dinâmica1").PivotFields("MODEL2")

我在excel文件上执行1透视表循环时遇到一个问题: 我只想将
model2
IJ
更改为
CV

For i = 7 To 11

    ActiveSheet.PivotTables("Tabela  
    dinâmica1").PivotFields("MODEL2").CurrentPage _
         = "(All)"
    With ActiveSheet.PivotTables("Tabela dinâmica1").PivotFields("MODEL2")
        .PivotItems("CV").Visible = False
        .PivotItems("IJ").Visible = True
        .PivotItems("(blank)").Visible = False
    End With
    cel4 = "AV" & i
    cel3 = "AX" & i
    Worksheets("DDTZ C").Range("AZ" & i).Formula = "=Iferror(IF(" & cel4 &   
    "="""","""",VLookup(" & cel3 & ", AT:AV, 3, False)),"""")"

    ActiveSheet.PivotTables("Tabela 
    dinâmica1").PivotFields("MODEL2").CurrentPage _
         = "(All)"
    With ActiveSheet.PivotTables("Tabela dinâmica1").PivotFields("MODEL2")
         .PivotItems("CV").Visible = True
         .PivotItems("IJ").Visible = False
         .PivotItems("(blank)").Visible = False
    End With

    Worksheets("DDTZ C").Range("BA" & i).Value = "=Iferror(IF(" & cel4 & 
    "="""","""",VLookup(" & cel3 & ", AT:AV, 3, False)),"""")"

Next i
此循环在第一个循环上运行良好,但是,当它启动第二个循环时,我发现一个错误,我已检查了脚本,问题与以下部分有关:

    ActiveSheet.PivotTables("Tabela  
         dinâmica1").PivotFields("MODEL2").CurrentPage _
         = "(All)"
    With ActiveSheet.PivotTables("Tabela dinâmica1").PivotFields("MODEL2")
        .PivotItems("CV").Visible = False
        .PivotItems("IJ").Visible = True
        .PivotItems("(blank)").Visible = False
    End With
我无法理解为什么我会遇到这样的问题,因为它在第一个循环
I=7

有人能帮助解决这个问题吗? 提前感谢

请尝试下面的代码

注意:我只调试了
数据透视表
部分,没有调试公式

Dim PvtTbl As PivotTable

' set the Pivot Table into a variable
Set PvtTbl = ActiveSheet.PivotTables("Tabela dinâmica1")
Dim i As Long

For i = 7 To 11
    With PvtTbl
        With .PivotFields("MODEL2")
            .ClearAllFilters
            .PivotItems("CV").Visible = False
            .PivotItems("(blank)").Visible = False
        End With

        cel4 = "AV" & i
        cel3 = "AX" & i

        ' === Not debugging your formula part ===
        Worksheets("DDTZ C").Range("AZ" & i).Formula = "=Iferror(IF(" & cel4 &
        "="""","""",VLookup(" & cel3 & ", AT:AV, 3, False)),"""")"

        With .PivotFields("MODEL2")
            .ClearAllFilters
            .PivotItems("IJ").Visible = False
            .PivotItems("(blank)").Visible = False
        End With

        ' === Not debugging your formula part ===
        Worksheets("DDTZ C").Range("BA" & i).Value = "=Iferror(IF(" & cel4 &
        "="""","""",VLookup(" & cel3 & ", AT:AV, 3, False)),"""")"
    End With
Next i
请尝试下面的代码

注意:我只调试了
数据透视表
部分,没有调试公式

Dim PvtTbl As PivotTable

' set the Pivot Table into a variable
Set PvtTbl = ActiveSheet.PivotTables("Tabela dinâmica1")
Dim i As Long

For i = 7 To 11
    With PvtTbl
        With .PivotFields("MODEL2")
            .ClearAllFilters
            .PivotItems("CV").Visible = False
            .PivotItems("(blank)").Visible = False
        End With

        cel4 = "AV" & i
        cel3 = "AX" & i

        ' === Not debugging your formula part ===
        Worksheets("DDTZ C").Range("AZ" & i).Formula = "=Iferror(IF(" & cel4 &
        "="""","""",VLookup(" & cel3 & ", AT:AV, 3, False)),"""")"

        With .PivotFields("MODEL2")
            .ClearAllFilters
            .PivotItems("IJ").Visible = False
            .PivotItems("(blank)").Visible = False
        End With

        ' === Not debugging your formula part ===
        Worksheets("DDTZ C").Range("BA" & i).Value = "=Iferror(IF(" & cel4 &
        "="""","""",VLookup(" & cel3 & ", AT:AV, 3, False)),"""")"
    End With
Next i

@你要拿这个吗?我可以上床睡觉了吗?@ShaiRado Nah-我刚刚编辑了[macros]标记-轴表不是我的事,所以我宁愿你回答-喝点咖啡-保持清醒一点longer@YowE3K你要吃这个吗?我可以上床睡觉了吗?@ShaiRado Nah-我刚刚编辑了[macros]标记-轴表不是我的事,所以我希望你回答-多喝点咖啡-多睡一会儿谢谢@Shai Rado,它工作得很好非常感谢@Shai Rado,它工作得很好