儘管我還沒有找到解決我最初的問題,但我設法根據Zac提供的反饋提出了一個解決方法。我有點把他的想法和跑了。以爲我會發布我的解決方法,以防任何人遇到同樣的問題。
因此,我所做的是使用Replace語句來格式化HTML中的文本,填充HTML電子郵件模板,然後刪除HTML標記,以便文本在Excel中仍可正確格式化。下面是我的代碼示例:
' Add HTML formatting to text updates so it displays correctly in the email.
PreviousUpdates.Text = Replace(PreviousUpdates, vbCrLf, "<br>")
LatestUpdate.Text = Replace(LatestUpdate, "-", "<li>")
LatestUpdate.Text = Replace(LatestUpdate, vbCrLf, "<br>")
' Populate the HTML email template.
.Subject = Replace(.Subject, "<<REF>>", Worksheets("Sheet1").Range("C3"))
.HTMLBody = Replace(.HTMLBody, "<< summary >>", Summary.Text)
.HTMLBody = Replace(.HTMLBody, "<< latest-update >>", LatestUpdate.Text)
.HTMLBody = Replace(.HTMLBody, "<< previous-updates >>", PreviousUpdates.Text)
.Display
' Remove HTML formatting from text updates so it displays correctly in Excel.
PreviousUpdates.Text = Replace(PreviousUpdates, "<br>", vbCrLf)
LatestUpdate.Text = Replace(LatestUpdate, "<li>", "-")
LatestUpdate.Text = Replace(LatestUpdate, "<br>", vbCrLf)
那麼這段代碼是幹什麼用HTML換行符替換的Excel回車(vbCrLf)(< BR>)。它也在尋找一個破折號,並用項目符號列表HTML標籤取而代之。
一旦填充到電子郵件中,它將刪除HTML格式,以便文本在Excel中正確顯示。
這不是完美的,但它的工作原理,人們使用它很簡單。
來源
2017-09-05 08:24:28
Kev
只是一個想法,你能不能將文本從你的文本框複製到一個單元格中,格式化文本,然後在你的替換中使用它?這樣,你不需要2個不同的陳述來取代..只是一個想法 – Zac
嗯,我從來沒有想到這一點。這可能是一種可能性,但想法是爲用戶填充容易,因此在XLS中看起來與在電子郵件中看起來一樣。 雖然我肯定會給出一個嘗試作爲短期解決方法。謝謝。 – Kev
我會把它放在一個隱藏的單元格中,用戶不會更聰明,或者你可以將它複製到單元格'H3'中,因爲這是一個用戶可能在表單中填充的單元格 – Zac