2016-11-24 142 views
1

我正在尝试将一段代码传送到另一个工作簿。代码工作完美上workbook1但生成未定义Excel VBA Outlook自动化代码段在一个工作簿中工作,但不在另一个工作簿中

当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

+0

什么'Workbook'? ?您拥有的代码与** Outlook **相关! –

+0

检查包含在第一个工作簿中的引用与第二个工作簿中的引用。 –

+0

@ShaiRado - 可以[tag:excel-vba]但是混合并匹配早期和晚期的绑定 –

回答

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

+0

再次感谢您 – AutomateMyJob

+0

无后顾之忧 - 快乐编码:) –

相关问题