我从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
答案 0 :(得分:1)
使用Workbook.Open Event代替Auto_open
,因为Auto_open
已过时。
将其放入ThisWorkbook
而不是模块中!
您可能会受益于阅读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
还要确保在Excel的“信任中心”中为文件位置启用了宏,或者对文件进行了数字签名。否则,Excel安全性可能会阻止宏执行。