Excel VBA Outlook自动化代码段在一个工作簿中工作,但不在另一个工作簿中

我正在尝试将一段代码转移到另一个工作簿。 该代码完美工作簿1,但生成一个

编译错误未定义用户定义的types

在workbook2上运行时。

这是有问题的代码。

' Set up Outlook Namespace Set OL = CreateObject("Outlook.Application") Dim olNS As Outlook.Namespace Dim olFol As Outlook.Folder Set olNS = OL.GetNamespace("MAPI") Set olFol = olNS.GetDefaultFolder(olFolderInbox) ' Current users address Address = olNS.Accounts.Item(1).SmtpAddress 

该错误来自olNS As Outlook.Namespace

生成错误是因为尽pipe您使用OL后期绑定您仍然使用olNS早期绑定并可能没有在第二个工作簿中设置Outlook的引用。

如果你想使用后期绑定,那么做到这一点,例如:

 Dim olNS As Object Set olNS = CreateObject("Outlook.Namespace") Dim olFol As Object Set olFol = CreateObject("Outlook.Folder") 'etc... 

或者只是在第二个工作簿中设置对Outlook的引用:

在这里输入图像说明