首页 > 解决方案 > 从 Outlook 宏自动打开后无法调用 Excel 宏

问题描述

我从 Outlook 编写了一个宏来打开 Excel。

代码下方:

Public Sub OpenMasterPM()
    Dim xExcelFile As String
    Dim xExcelApp As Excel.Application
    Dim xWb As Excel.Workbook
    Dim xWs As Excel.Worksheet
    Dim xExcelRange As Excel.Range
    xExcelFile = "C:\Users\andrea.vighetti\Documents\Banca5\Evolutive\Master PM_prova.xlsm"
    Set xExcelApp = CreateObject("Excel.Application")
    Set xWb = xExcelApp.Workbooks.Open(xExcelFile)
    Set xWs = xWb.Sheets(1)
    xWs.Activate
    xExcelApp.Visible = True     
End Sub

之后,Excel 已打开,我Auto_Open在 Excel 上有一个宏,我想在该页面打开时启动它,但这不起作用。

从 Outlook 的宏开始打开 ​​Excel 时,在 Excel 上编写的自动打开宏似乎不会启动,位于 Excel 上的 vba 代码下方:

Sub Auto_open()

    Sheets("Evolutive TFS").Select
    ActiveWorkbook.RefreshAll
    Sheets("Gantt").Select
    ActiveSheet.ListObjects("Gantt").Range.AutoFilter Field:=3, Criteria1:="=Implementation", Operator:=xlOr, Criteria2:="=Test"

End Sub

标签: excelvbaoutlook

解决方案


  1. 而不是Auto_open使用Workbook.Open 事件,因为Auto_open它已过时。
    放入ThisWorkbook不成模块!

  2. 您可能会从阅读如何避免在 Excel VBA 中使用 Select 中受益。

    Private Sub Workbook_Open()
        Sheets("Evolutive TFS").RefreshAll
        Sheets("Gantt").ListObjects("Gantt").Range.AutoFilter Field:=3, Criteria1:="=Implementation", Operator:=xlOr, Criteria2:="=Test"
    End Sub
    
  3. 还要确保在 Excel 的信任中心中为文件位置或文件已数字签名启用宏。否则 Excel 安全性可能会阻止宏执行。

    请参阅在 Office 文件中启用或禁用宏


推荐阅读