2016-07-05 405 views
0

我有附件創建收據以通過電子郵件發送給客戶。 我試圖讓第二個字段對齊Outlook電子郵件,但迄今未能找到解決方案。已經嘗試過Chr9,vbTab,只是增加空格等。 解決方案將不勝感激 - 我不認爲它是一個巨大的任務來解決,但它目前證明難以捉摸。Excel創建Outlook電子郵件,但文本不對齊

Sub GenerateEmails() 

Dim ce As String: ce = "[email protected]" 

'create draft emails 
Dim OutApp As Object, OutMail As Object 
Set OutApp = CreateObject("Outlook.Application") 

On Error GoTo cleanup 
    If ce Like "?*@?*.?*" Then 
     Set OutMail = OutApp.CreateItem(0) 
     On Error Resume Next 

     With OutMail 
      .TO = ce 
      .CC = "" 
      .Subject = "Receipt" 
      .Body = "Payment Amount:   " & "$10,000" & vbNewLine & _ 
        "Receipt Num:   " & "R645-81658" & vbNewLine & _ 
        "Sales Rep:    " & "Ben Smith" & vbNewLine & _ 
        "Date Received:   " & "05 July 2016" 
      .Display 
     End With 
     On Error GoTo 0 
     Set OutMail = Nothing 
    End If 

cleanup: 
    Set OutApp = Nothing 
    Application.ScreenUpdating = True 

End Sub 

感謝

+0

您是否嘗試過使用HTML格式發送並使用表格? –

回答

1
Sub Email() 

Dim ol As Outlook.Application 
Dim olMsg As Outlook.MailItem 

Set ol = New Outlook.Application 

Set olMsg = ol.CreateItem(olMailItem) 

olMsg.BodyFormat = olFormatHTML 
olMsg.HTMLBody = "<TABLE><TR><TD>Cell 1</td><td>Value 1</td></tr>" & _ 
      "<TR><TD>Cell 2</td><td>Value 2</td></tr>" & _ 
      "<TR><TD>Cell 3</td><td>Value 3</td></tr></table>" 

olMsg.Display 

End Sub 

此外,您可以使用每個字符具有相同大小的字體,如Courier?並使用maxmimum,比如說100個空格,然後執行left("data to be added " & string(100," "),100)

+0

@Darren Barson要使用此方法,您必須在您中激活Microsoft Outlook對象庫參考如果它尚未完成。 –

+0

謝謝。如何將字體輸出更改爲快遞?我對Outlook有零知識,所以想知道是否有辦法在excel輸出中做到這一點。 –

+0

我試着在Font中添加一個Font.Name =「Courier」,但沒有運氣 –

0

我剛纔添加的所需空間的數量(我算如何是需要在電子郵件中許多空間,而我認爲是你讓它在你的代碼一致)。

.Body = "Payment Amount:   " & "$10,000" & vbNewLine & _ 
      "Receipt Num:    " & "R645-81658" & vbNewLine & _ 
      "Sales Rep:      " & "Ben Smith" & vbNewLine & _ 
      "Date Received:    " & "05 July 2016" 

這對我來說是一致的。但它並不完美,可以遵循@Nathan_Sav的建議並使用表格。

+0

謝謝。我確實嘗試過,但文本寬度給了我很小的間距問題。 –

相關問題