在VBA中激活Excel工作表而不导航到工作表

时间:2015-12-24 06:44:59

标签: excel vba

是否可以从VBA激活Excel工作表而不实际离开启动宏的工作表?

3 个答案:

答案 0 :(得分:2)

是的,您可以使用with命令

直接在新工作表中运行所需的代码
With Sheets("Sheet2") 'Sheet2 is the new sheet
    Debug.Print .Range("A1")
    'Run your desired code here.
End With

答案 1 :(得分:2)

ThisWorkbook.Worksheets(2).Activate

这将使所需的工作表设置为活动状态。请注意,如果您没有首先禁用Application.ScreenUpdating,如此处的其他答案中所述,工作表将会明显跳转,以便显示活动工作表。

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

Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets(2)

ws.Range("A1").Value = "Hello world"

此代码段会将“Hello world”插入工作簿中第二个工作表的单元格A1中 - 无需激活工作表。

答案 2 :(得分:1)

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