2015-10-20 190 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

相关问题