2016-07-05 399 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

谢谢。我确实尝试过,但文本宽度给了我很小的间距问题。 –

相关问题