excel - 从 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
解决方案
而不是
Auto_open
使用Workbook.Open 事件,因为Auto_open
它已过时。
放入ThisWorkbook
不成模块!您可能会从阅读如何避免在 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
还要确保在 Excel 的信任中心中为文件位置或文件已数字签名启用宏。否则 Excel 安全性可能会阻止宏执行。
推荐阅读
- python - 使用正则表达式查找和替换每个匹配项的任意数量的元素
- python - 如何使用 tkinter 使按钮中的文本快速重复更改
- cmake - CMake find_package 包路径
- java - 如何比较 Double.MAX_VALUE
- google-sheets - 防止添加到谷歌表格的重复谷歌表单提交
- kubernetes - 如何模拟 Kubernetes 集群/服务器?
- java - 由于 Hystrix 和 gradle 升级,Spring Boot 2.1.1.RELEASE 启动失败?
- jquery - JQuery 函数,应该只在某个类上触发,即使从标签中删除类也会继续触发
- css - 在不知道组件数量的情况下粘贴位置的纯 css 堆叠
- python - 需要列表中最后 x 个元素的随机值