来自Outlook的电子邮件与主题中的Excel单元格值

问题描述:

如何从包含excel文件中主题单元值的outlook发送电子邮件?来自Outlook的电子邮件与主题中的Excel单元格值

我发现每一个可能的代码来从Excel发送电子邮件,但我真的想打开电子邮件,并从Excel文件中获得单元格值。

而这一切都是从Outlook而不是从Excel完成的。谢谢。

+0

见例有你真的没有发现.Subject和Range( “A1”)。价值? –

+0

:)我不知道Outlook如何在范围的excel文件中查找。 – wittman

+1

道歉,我以为你的WB也打开了,你需要打开工作簿或者用excel查询它。看看http://stackoverflow.com/questions/5094624/outlook-vba-open-excel然后你可以使用Workbook.Worksheet.Range(address).value来添加。 –

下面

Option Explicit 
Sub Cell_Value_in_Subject() 
    Dim olItem As Outlook.MailItem 
    Dim xlApp As Excel.Application 
    Dim xlBook As Excel.Workbook 
    Dim xlSht As Excel.Worksheet 
    Dim sPath As String 

    sPath = "C:\Temp\Book1.xlsx" '<- Update 

' // Excel 
    Set xlApp = CreateObject("Excel.Application") 
' // Workbook 
    Set xlBook = xlApp.Workbooks.Open(sPath) 
' // Sheet 
    Set xlSht = xlBook.Sheets("Sheet1") 

    Debug.Print xlSht.Range("A1") '<- Print Value in immediate window 

' // Create e-mail Item 
    Set olItem = Application.CreateItem(olMailItem) 

    With olItem 
     .To = "[email protected]" 
     .Subject = xlSht.Range("A1") 
     .HTMLBody = xlSht.Range("A2") & " is Cell Value" 
     .Display 
    End With 

' // Close 
    xlBook.Close SaveChanges:=True 
' // Quit 
    xlApp.Quit 

    '// CleanUp 
    Set xlApp = Nothing 
    Set xlBook = Nothing 
    Set xlSht = Nothing 
    Set olItem = Nothing 

End Sub 
+1

谢谢你的回答。 – wittman