从Outlook宏自动打开后无法调用Excel宏

时间:2019-02-18 14:34:50

标签: excel vba outlook outlook-vba

我从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打开,并且我在Excel上有一个Auto_Open宏,当该页面打开时我想启动它,但这是行不通的。

从Excel的vba代码下方的Outlook宏开始打开Excel时,似乎无法启动在Excel上编写的自动打开宏:

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

1 个答案:

答案 0 :(得分:1)

  1. 使用Workbook.Open Event代替Auto_open,因为Auto_open已过时。
    将其放入ThisWorkbook而不是模块中!

  2. 您可能会受益于阅读How to avoid using Select in Excel VBA

    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安全性可能会阻止宏执行。

    请参见Enable or disable macros in Office files