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

时间:2016-11-24 12:34:23

标签: excel vba excel-vba

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

  

编译错误用户定义的类型未定义

在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

1 个答案:

答案 0 :(得分:1)

生成错误是因为虽然您对OL使用后期绑定,但您仍然使用olNS的早期绑定,并且可能未在第二个工作簿中设置Outlook的引用。

如果您想使用后期绑定,请执行此操作,例如:

Dim olNS As Object
Set olNS = CreateObject("Outlook.Namespace")

Dim olFol As Object
Set olFol = CreateObject("Outlook.Folder")

'etc...

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

enter image description here