2016-11-24 128 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

無後顧之憂 - 快樂編碼:) –

相關問題