Создание столбцов в HTML Тело таблицы Электронная почта с VBA в Excel - PullRequest
0 голосов
/ 29 октября 2018

Я создал таблицу, которая будет помещена в текст электронного письма Outlook в формате HTML. Я изо всех сил пытаюсь поместить значения в надлежащие столбцы. Я играл с тэгами "td", но безуспешно. Все значения теперь расположены рядом друг с другом без пробелов между ними и, следовательно, не в надлежащем формате таблицы. Пожалуйста, помогите!

Мой код:

Public Sub HypMail4()

Dim OutApp As Object
Dim OutMail As Object
Dim strbody As String

Set Out App = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)

strbody = ""
strbody = strbody & _
"<html>" & "<table>" & "<font color = ""red""><b>" & Range("A1") & 
Range("B1") & Range("C1") & Range("D1") & Range("E1") & "</font></b>" & " 
</th>" & _
"<tr>" & Range("A2") & Range("B2") & Range("C2") & Range("D2") & Range("E2") 
 & "</tr>"
strbody = strbody & _
"<tr>" & Range("A3") & Range("B3") & Range("C3") & Range("D3") & Range("E3") 
& "</tr>"
strbody = strbody & _
"<tr>" & Range("A4") & Range("B4") & Range("C4") & Range("D4") & Range("E4") 
& "</tr>" & "</table>" & "</html>"

On Error Resume Next

With OutMail
    .To = "zzz@example.com"
    .CC = ""
    .BCC = ""
    .Subject = "Test"
    .HTMLBody = strbody
    .Send
End With

On Error GoTo 0

Set OutMail = Nothing
Set OutApp = Nothing

End Sub

1 Ответ

0 голосов
/ 30 октября 2018

Мне удалось самостоятельно ответить на мой вопрос, включив теги td. Основная проблема, однако, заключалась в том, что я слишком часто определял strbody, что испортило формат таблицы (следовательно, тэги td не работали) - см. Код ниже:

Public Sub Test()
    Dim OutApp As Object
    Dim OutMail As Object
    Dim strbody As String

    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)

    strbody = "<html>" & "<table>" & "<tr>" & "<td>" & Range("A1") & "</td>" & "<td>" & Range("B1") & "</td>" & "<td>" & Range("C1") & "</td>" & "</tr>" & _
     "<tr>" & "<td>" & Range("A2") & "</td>" & "<td>" & Range("B2") & "</td>" & "<td>" & Range("C2") & "</td>" & "</tr>" & _
     "<tr>" & "<td>" & Range("A3") & "</td>" & "<td>" & Range("B3") & "</td>" & "<td>" & Range("C3") & "</td>" & "</tr>" & _
     "<tr>" & "<td>" & Range("A4") & "</td>" & "<td>" & Range("B4") & "</td>" & "<td>" & Range("C4") & "</td>" & "</tr>" & "</table>" & "</html>"

    With OutMail
        .To = "zzz.com@zzz.com"
        .CC = ""
        .BCC = ""
        .Subject = "Test"
        .HTMLBody = strbody
        .Send
    End With

    On Error GoTo 0

    Set OutMail = Nothing
    Set OutApp = Nothing

End Sub
...