此宏以富文本格式草拟电子邮件。 (在这种情况下,HTML 正文不是我的选择。)
我需要使用默认文本和放置在电子邮件中间的两个附件来填充电子邮件的正文。 (路径 1 和路径 2)。
我发现使用 RTF 格式化正文文本不如 HTML 直观。从动态 Word 文档中复制电子邮件正文似乎是一个不错的解决方案。
(我并没有编写大部分代码,只是为了这个目的而尝试改进它。)
Option Explicit
Function send_mail_rich_text(ByVal send_to As String, ByVal
mail_subject As String, ByVal mail_content As Range, ByVal
cc_list As String)
Dim oOlApp As Object ' Outlook.Application
Dim oOlMItem As Object ' Outlook.MailItem
Dim oWdDoc As Object ' Word.Document
Dim Path1 As String
Dim Path2 As String
Path1 = "C:\Users\DegenTrader\Desktop\Wallet Allocations 42069xD.xlxs"
Path2 = "C:\Users\DegenTrader\Desktop\Hash Rate Info.xlsx"
Err.Clear
Set oOlApp = CreateObject("Outlook.Application")
Set oOlMItem = oOlApp.CreateItem(olMailItem)
' Range can be copied directly as given as Range via function call
'mail_content.Copy
' On Error Resume Next ' activate it after debugging
With oOlMItem
.To = send_to
.Subject = mail_subject
.BodyFormat = 3 ' 3=RichTextFormat
'Set oWdDoc = .GetInspector.WordEditor
' by this you paste below your signature
' oWdDoc.Paragraphs(oWdDoc.Paragraphs.Count).Range.Paste
.Display
End With
Application.CutCopyMode = False
If Err.Number <> 0 Then
send_mail_rich_text = "error"
ElseIf oOlMItem.Sent = True Then
send_mail_rich_text = "sent"
Else
send_mail_rich_text = "no error, but not sent"
End If
End Function
Sub TestSendmailFunction()
Debug.Print send_mail_rich_text("shiba.inu@DogeCoin.com", "HODL- To the Moon!", ActiveSheet.Range("B2:C3"), "Cheems@reddit.com")
End Sub
最佳答案
要添加附件,您可以使用 Attachments.Add在 Attachments
中创建新附件的方法收藏。例如:
Sub AddAttachment()
Dim myItem As Outlook.MailItem
Dim myAttachments As Outlook.Attachments
Set myItem = Application.CreateItem(olMailItem)
Set myAttachments = myItem.Attachments
myAttachments.Add "C:\Test.doc", _
olByValue, 3, "Test"
myItem.Display
End Sub
Position
参数仅适用于使用富文本格式的电子邮件:它是附件应放置在邮件正文中的位置。 Position 参数的值为 1 指定附件应位于邮件正文的开头。大于电子邮件项目正文中字符数的值“n”指定附件应放在末尾。值 0 使附件隐藏。要发送电子邮件,您需要替换
Display
使用 Send
的方法一。
关于excel - 如何将格式化文本从 Word 文档复制到富文本格式电子邮件正文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70975484/