VBA引用自动更改版本

时间:2018-03-06 23:54:59

标签: vba reference office-2016

我在Excel 2013中编写了一些引用Outlook的VBA,现在用于虚拟机。我的笔记本电脑上周升级到Office 2016,我在这个工具上做了一些更改,然后无法在VM上运行。

将文件中的VBA Outlook引用更改为v16.0(Office 2016),因此当VM尝试运行代码时(2013年),它无法找到此引用。

还有通用的Office引用,但仍保留为v15.0。

我还没有找到任何关于此的文档 - 这是标准行为吗?如果有的话,有关如何在不引用参考文件的情况下对此文件进行进一步更改的任何想法?

1 个答案:

答案 0 :(得分:0)

这是标准行为。

您需要从早期绑定到晚期绑定。删除VBE中的Outlook引用,并在代码中将outlook应用程序声明为Object

Dim olApp As Object
Set olApp = CreateObject("Outlook.Application")

要记住这样做会失去智能感知,你可能需要将一些常数改为数值,例如: olMailItem0

确保您的模块顶部有Option Explicit,因为这会突出显示编译错误。