2015-10-20 219 views
0

我已經寫在Outlook中宏和Excel VBA中,描述是: 1.代碼在Outlook開放的Excel文件,如果電子郵件主題行匹配:錯誤雖然通過Outlook從Excel發送電子郵件VBA

Private Sub Items_ItemAdd(ByVal Item As Object) 
    If TypeOf Item Is Outlook.MailItem Then 
     '// Subject line here 
     If InStr(Item.Subject, "Run Dashboard") Then 
      Call openExcel 
     End If 
    End If 
End Sub 

一旦Excel打開並且儀表板已經運行,那麼電子郵件必須通過Excel發送。

VBA和代碼:

Dim outapp As Object 
Dim nmail As Object 

Set outapp = CreateObject("Outlook.Application") 
Set nmail = outapp.CreateItem(0) 
With nmail 
    .To = "[email protected]" 
    .cc = "" 
    .bcc = "" 
    .Subject = flname 
    .htmlbody = RangetoHTML(Range("A1:" & Split(Cells(, lastcol1).Address, "$")(1) & lastrow1)) 
    .attachments.Add ActiveWorkbook.FullName 
    .display 
End With 

On Error GoTo 0 

Set nmail = Nothing 

Set outapp = Nothing 

現在我面對錯誤的Set outapp = CreateObject("Outlook.Application") 如果我打開Excel通過Outlook電子郵件文件中第1點中提到,如果我在正常方式打開文件時,此錯誤是隻顯示即沒有Outlook幫助,則代碼正在成功運行。

請幫助相同。

在此先感謝

+1

,而不是'昏暗outapp作爲object'你有沒有試着用'昏暗outapp爲outlook.Application'和'暗淡nmail作爲outlook.MailItem'同時檢查'微軟Outlook'參考是否包含 – Tom

+0

感謝這個工作:) – Dharmendra

+0

現在越來越錯誤「設置nmail = outapp.CreateItem(olMailItem)」在excel vba – Dharmendra

回答

0

爲什麼你需要到Excel從Outlook從Excel自動再展望?

Set outapp = CreateObject("Outlook.Application") 

相反,您可能會得到正在運行的Outlook實例(如果有),因爲只能同時運行一個Outlook實例。有關更多信息,請參閱How to automate Outlook from another programGetObject and CreateObject behavior of Office automation servers

嘗試使用下面的代碼行:

Set nmail = Application.CreateItem(olMailItem) 

如果您在Outlook中多個配置文件已配置則很可能需要使用命名空間類的Logon方法。

+0

我認爲「設置nmail = Application.CreateItem(olMailItem)」只能用於當我在Outlook中使用此代碼不在Excel中,我是在excel vba中出錯 – Dharmendra

相關問題