Excel 更新循环中的表时发生VBA数据透视表错误
我在excel文件上执行1透视表循环时遇到一个问题: 我只想将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")
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,它工作得很好