在VBA中激活Excel工作表,无需导航到工作表

是否有可能从VBA激活Excel工作表,而实际上远离从其启动macros的工作表?

是的,您可以使用with命令直接在新build工作表中运行所需的代码

 With Sheets("Sheet2") 'Sheet2 is the new sheet Debug.Print .Range("A1") 'Run your desired code here. End With 

是。

ThisWorkbook.Worksheets(2).Activate

这将使所需的工作表被设置为活动。 请注意,如果您不首先禁用Application.ScreenUpdating ,如在这里的其他答案中所述,工作表将显着跳转,以便正在显示活动工作表。

但是,我必须问,为什么你需要激活工作表? 如果要针对位于该工作表上的单元格运行某些命令,则可以先不激活工作表:

 Dim ws As Worksheet Set ws = ThisWorkbook.Worksheets(2) ws.Range("A1").Value = "Hello world" 

该代码片段将在工作簿的第二个工作表中的单元格A1插入“Hello world” – 不需要工作表激活。

您可以将Application.ScreenUpdating属性设置为false ,完成工作后,将其恢复为true
请参阅示例: https : //msdn.microsoft.com/en-us/library/office/ff193498.aspx