激活包含代码的工作簿

时间:2019-05-29 08:04:15

标签: excel vba

尝试在UNAPP宏之后激活活动工作簿,但是(如果打开了许多工作簿)始终激活最后打开的工作簿,并且每次切换(最后一个工作簿到Activeworkbook)时,我都需要始终激活从中调用代码的工作簿。

Sub App()
    With Application
      .ScreenUpdating = False
      .DisplayAlerts = False
      .EnableEvents = False
      .Calculation = xlManual
      .Visible = False
    End With
End Sub

Sub unApp()
    With Application
      .ScreenUpdating = True
      .DisplayAlerts = True
      .EnableEvents = True
      .Calculation = xlCalculationAutomatic
      .Visible = True
    End With
End Sub

Sub testActivate()
    Set wbT = ThisWorkbook
    App
    unApp
    wbT.Activate
End Sub

2 个答案:

答案 0 :(得分:0)

通常,使用.Activate不是一个好主意。我认为,间接使用工作簿的最佳方法是在变量中设置工作簿,然后在With Statement中使用该变量。

Option Explicit

Sub test()

    Dim wb1 As Workbook, wb2 As Workbook

    Set wb1 = Workbooks("Book1")
    Set wb2 = Workbooks("Book2")

    With wb2
        'Close is just an example
        .Close
    End With

End Sub

答案 1 :(得分:0)

Application影响当前应用程序中的所有工作簿,因此我假设您有多个打开的应用程序,并且要引用运行代码的应用程序吗?

如果可以,您可以使用

With ThisWorkbook.Application

(无论如何都是好习惯)