![](/img/trans.png)
[英]Outlook Email and Signature from Excel VBA - .Body vs .HTMLbody
[英]Access VBA Outlook Mailtiem.Body vs MailItem.HTMLBody
我正在嘗試使用自定義超鏈接填充一系列生成的電子郵件,但是在使超鏈接正確生成方面遇到麻煩。 我有一個用戶表單,允許創建報告的人在電子郵件正文中輸入文本字段。 該字段分配給表。
在“我的代碼”中,我將提取這些字段並解析為DATE和HYPERLINK之類的關鍵字,並用代碼生成的數字替換這些關鍵字。
創建超鏈接時,我將它們插入到主體字符串中,如下所示:
Function CreateHyperLink(HyperText, HyperLink) As String
CreateHyperLink = "<HTML><BODY>"
CreateHyperLink = CreateHyperLink & "<A href='" & HyperLink & "'>'" & HyperText & "'</A>"
CreateHyperLink = CreateHyperLink & "</BODY></HTML>"
End Function
但是當我插入這些as(eBody是一個字符串數組)
Set oMail = oApp.CreateItem(olMailItem)
With oMail
.To = t
.CC = c
.HTMLBody = eBody(i)
.Subject = eSubject(i)
ETC.....
超鏈接可以正確創建,但是我從用戶輸入的文本中丟失了所有的間距和換行符。
如果相反,我使用
Set oMail = oApp.CreateItem(olMailItem)
With oMail
.To = t
.CC = c
.Body = eBody(i)
.Subject = eSubject(i)
ETC.....
我保留所有格式,但是丟失了超鏈接。 有兩全其美的解決方案嗎? 我不希望我的用戶必須以HTML形式輸入整個電子郵件。
方法.htmlBody的示例輸出(超鏈接有效,但缺少格式)
可以通過以下方式訪問該文件:'單擊此處以訪問報告'請使用過濾器選擇您的...
方法.Body的示例輸出(超鏈接無效但已格式化)
可以通過以下方式訪問該文件:
<HTML><BODY><A href='http://FILELOCATION'>'Click here to access the Report '</A></BODY></HTML> "
請使用過濾器選擇您的...
有沒有一種方法可以在.body中添加超鏈接,或者可以使用.HTMLbody保持格式?
如果我正確閱讀了您的描述,則說明您正在為每個超鏈接創建一組新的“ HTML”和“ BODY”標簽。 在生成的HTML電子郵件中,您應該只有1個HTML和1個BODY標簽。
我建議您將CreateHyperLink函數更新為此:
Function CreateHyperLink(HyperText, HyperLink) As String
CreateHyperLink = "<a href='" & HyperLink & "'>'" & HyperText & "'</a>"
End Function
看一下電子郵件正文中間的范圍 。 我在這里的答案顯示了如何插入到現有.HTMLBody
的中間。
正如喬什所說。 您必須將整個電子郵件包裝在一個HTML
BODY
。 因此,我使用的是Josh剛才提到的內容,但是對您的Form設計進行了一些更改。
第一步。 轉到“表單”的“設計”視圖,確保將“文本框”(在其中輸入電子郵件的正文)設置為“ 純文本”而不是“ 純文本” 。 富文本格式會自動將數據包裝在適當的DIV
標簽中。 因此,用於創建超鏈接的代碼將是,
Function CreateHyperLink(HyperText, HyperLink) As String
CreateHyperLink = "<A HREF = '" & HyperLink & "'>'" & HyperText & "'</A>"
End Function
然后,在正文中,您只需使用(我不確定您是否正在預先格式化HTML,但這就是我要這樣做的方式。)
Set oMail = oApp.CreateItem(olMailItem)
With oMail
.To = t
.CC = c
.HTMLBody = "<HTML><BODY><FONT FACE='Calibri'>" & eBody(i) & "</FONT></BODY></HTML>"
.Subject = eSubject(i)
End With
記住 ! eBody(i)
是僅解析關鍵字而不是格式的結果。 由於TextBox是一個RTF文本框,因此可以為您完成格式化!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.