防止VBA选择其他工作表

时间:2018-07-30 10:18:19

标签: excel excel-vba

我需要重写此代码以进行计算,而无需选择“ Random_Cal”表。

Sheets("Random_Cal").PivotTables("PivotTable3").PivotCache.Refresh
Sheets("Random_Cal").Select
ActiveSheet.PivotTables("PivotTable3").PivotFields("3a").PivotFilters.Add Type _
    :=xlValueIsBetween, DataField:=ActiveSheet.PivotTables("PivotTable3"). _
    PivotFields("3b"), Value1:=1, Value2:=Range("AI52")

所有代码均有效,但激活代码的按钮与“ Random_Cal”在另一张纸上。当前,当按下按钮时,屏幕跳至“ Random_Cal”,然后跳回到起始页。我只需要更改此部分代码以保留在第一张纸上,但要计算“ Random_Cal”纸即可。谢谢

1 个答案:

答案 0 :(得分:3)

使用With With ... End With块,将父级工作表引用传递给。

with workSheets("Random_Cal")
    .PivotTables("PivotTable3").PivotCache.Refresh
    .PivotTables("PivotTable3").PivotFields("3a").PivotFilters.Add _
       Type:=xlValueIsBetween, DataField:=.PivotTables("PivotTable3"). _
       PivotFields("3b"), Value1:=1, Value2:=.Range("AI52")
end with

How to avoid using Select in Excel VBA