2015-11-25 117 views
1

enter image description here子ColdEmail()保留原始段落間距與HTMLbody

Dim OutLookApp As Object 
Dim OutLookMailItem As Object 
Dim lastrow As Long 
Dim iCounter As Long 
Dim MailDest As String 
Dim subj As String 
Dim bod As String 
Dim ws As Worksheet 
Dim signature As String 

lastrow = ThisWorkbook.Worksheets("Prospects").Cells(Rows.Count, "D").End(xlUp).Row 'change worksheet 

For iCounter = 2 To lastrow 

    Set OutLookApp = CreateObject("Outlook.application") 
    Set OutLookMailItem = OutLookApp.CreateItem(0) 

    signature = Environ("appdata") & "\Microsoft\Signatures\" 
    If Dir(signature, vbDirectory) <> vbNullString Then 
     signature = signature & Dir$(signature & "*.htm") 
    Else: 
     signature = "" 
    End If 
    signature = CreateObject("Scripting.FileSystemObject").GetFile(signature).OpenAsTextStream(1, -2).ReadAll 

    With OutLookMailItem 

     subj = "" 
     MailDest = "" 
     bod = "" 

     If Cells(iCounter, 13) = "*" Then 

      subj = Cells(iCounter, 14).Value 
      MailDest = Cells(iCounter, 7).Value 
      bod = Cells(iCounter, 16).Value 

      .BCC = MailDest 
      .Subject = subj 
      .HTMLBody = bod & signature 
      .Send 
     End If 

    End With 



Next iCounter 

End Sub 

上述代碼自動發送電子郵件到電子郵件地址的列和它得到從Excel中的列中的身體段爲好。

我希望我的郵件在Outlook中包含我的默認簽名,所以我將我的代碼更改爲HTMLbody。

送出不會保留原來的段落間距的電子郵件:

line 1 

line 2 

line 3 

它看起來像現在這樣:line1 line2 line3

回答

2

我要重申斯科特·霍爾茨曼的建議對HTML閱讀起來。每當我需要在電子郵件中進行HTML格式化時,我發現<br>是最直接的選擇。使用一個<br>將文本移動到下一行。要創建空白區域(如段落之間的空行),請使用<br><br>

你可以把這個權利放到你的文本所在的單元格中。方括號將標記爲HTML,它將在電子郵件中作爲中斷而不是可讀文本呈現。

換句話說:Thanks,<br> Cthulhu在Excel單元格,將呈現爲
「謝謝,
邪神」
在你的電子郵件。

+0

謝謝你做的竅門! – Daruki

1

它會幫助你閱讀coding HTML

現在,你可以這樣做:

要加載默認的簽名(在Outlook中已經設置),你可以做以下(和消除你的代碼來獲取簽名):

With OutLookMailItem 
    .Display 
    signature = .HTMLBody 
    .... 

要格式化HTML的身體,你可以做這樣的事情:

'change font info as needed 
bod = "<BODY style=font-size:12pt font-family:Times New Roman font-color:blue>" _ 
     & "<p>" & Cells(iCounter, 16).Value & "</p>" _ 
     & "</BODY>" _ 
     & signature 
+1

電子郵件發送正確使用.BCC – Daruki

+0

我試過這個編輯,但我的電子郵件仍然不保留原始間距 - line1line2line3 – Daruki

+0

原始間距?我很困惑,因爲你只是從一個細胞設置身體?在這個單元格中是否有回車符創建間距? –