excel - 为什么在 Outlook VBA 中调用 excel 函数需要更多时间?

标签 excel vba outlook

我第一次在outlook中写一个宏,需要一些excel函数。所以我转到工具 > 引用并选择“Microsoft Excel 15.0 对象库”,然后在即时窗口中对其进行测试。以下是我在即时窗口中写的:

? WorksheetFunction.Weekday(Now(), 2)

有一些可观察到的但最小的延迟(可能只有 0.2 秒或更短)来显示答案,但如果我在 excel 中尝试相同的事情,情况并非如此。我不得不承认这并没有对宏观造成太大伤害,但我很好奇。为什么 Outlook 获取工作表函数对象的速度较慢?我是否以错误的方式添加库?

更新:
关于防止不合格的引用,我应该使用如下代码
Dim oExcel As Excel.Application
Set oExcel = CreateObject("Excel.Application")
'main body here
oExcel.Quit
Set oExcel = Nothing

最佳答案

WorksheetFunction对象是 Excel Application 的成员目的。当您调用 WorksheetFunction来自 Outlook 的成员,您正在隐式创建 Excel 的一个实例,这将需要一些时间来加载。
如果你需要 WeekDay 函数,VBA 库中已经有类似的东西:

Function Weekday(Date, [FirstDayOfWeek As VbDayOfWeek = vbSunday])

Member of VBA.DateTime

关于excel - 为什么在 Outlook VBA 中调用 excel 函数需要更多时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47526747/

相关文章:

excel - 如何在 Excel 2013 中正确显示 .csv 文件?

c# - 在 Excel 中需要 12 小时格式

vba - 从变量引用另一个工作簿中的工作表时下标超出范围

Excel VBA 更改单元格颜色

javascript - 使用 C# 打开带有附件的默认邮件客户端窗口,

excel - 显示选项卡是否隐藏的工作表公式

arrays - 在 Excel 中将类型字符串数组复制到范围 - 限定符无效

ms-access - Access 组合框存储 1 个值,显示另一个值

outlook - 展望中的 Markdown

html - 删除 Outlook 365 中 HTML 邮件正文中表格前后的换行符