首页 > 解决方案 > 如何左对齐作为 html 发送到 Outlook 的范围?

问题描述

当一个范围(保存为临时 HTML 文件)转到 Outlook 时,它被识别为一个表格,并且居中对齐。

我在左边有这个空白空间。
在此处输入图像描述

如何使范围左对齐?

Dim objSelection As Excel.Range
Dim objTempWorkbook As Excel.Workbook
Dim objTempWorksheet As Excel.Worksheet
Dim strTempHTMLFile As String
Dim objTempHTMLFile As Object
Dim objFileSystem As Object
Dim objTextStream As Object
Dim objOutlookApp As Outlook.Application
Dim objNewEmail As Outlook.MailItem
Dim usuario As String
Dim linhaemail As Long

'Copy the selection that will be send using outlook'

Sheets("Padrão E-mail").Activate
ActiveSheet.Range("B1:K29").Select
Set objSelection = Selection
Selection.Copy

'Paste the copied selected ranges into a temp worksheet'
Set objTempWorkbook = Excel.Application.Workbooks.Add(1)
Set objTempWorksheet = objTempWorkbook.Sheets(1)

'Keep the values, column widths and formats in pasting'
 With objTempWorksheet.Cells(1)
    .PasteSpecial xlPasteValues
    .PasteSpecial xlPasteColumnWidths
    .PasteSpecial xlPasteFormats
 End With

'Save the temp worksheet as a HTML file'
Set objFileSystem = CreateObject("Scripting.FileSystemObject")
strTempHTMLFile = objFileSystem.GetSpecialFolder(2).Path & "\Temp for Excel" & 
Format(Now, "YYYY-MM-DD hh-mm-ss") & ".htm"
Set objTempHTMLFile = objTempWorkbook.PublishObjects.Add(xlSourceRange, 
strTempHTMLFile, objTempWorksheet.Name, objTempWorksheet.UsedRange.Address)
objTempHTMLFile.Publish (True)
Set objTextStream = objFileSystem.OpenTextFile(strTempHTMLFile)

'Create a new email'
Set objOutlookApp = CreateObject("Outlook.Application")
Set objNewEmail = objOutlookApp.CreateItem(olMailItem)

'Read the HTML file data and insert into the email body'
 objNewEmail.HTMLBody = objTextStream.ReadAll

标签: htmlexcelvbaoutlook

解决方案


知道了!

objNewEmail.HTMLBody = "<table align=""left"">" & objTextStream.ReadAll & "</table>" & "<p align=""left"">" & objNewEmail.HTMLBody & "</p>"

推荐阅读