我正在尝试在Excel 2016中使用电子邮件正文中的表格在Outlook 2016中发送电子邮件 我研究过Stack Overflow以及其他网站。我发现HTML部分令人困惑。
以下是我编写的代码,用于发送电子邮件。代码有效,但我需要用表替换.HTMLBody = "Hello World"
。
Sub Send_mail()
Dim outlookApp As Outlook.Application
Dim outlookMail As Outlook.MailItem
Set outlookApp = New Outlook.Application
Set outlookMail = outlookApp.CreateItem(olMailItem)
With outlookMail
.To = "recipient@mail.com"
.CC = ""
.BCC = ""
.Subject = "TEST123"
.BodyFormat = olFormatHTML
.HTMLBody = "Hello World"
.Send
End With
Set outlookMail = Nothing
Set outlookApp = Nothing
End Sub
要插入电子邮件正文中的表格包含A,B,C和D列 数据总是从第2行开始,但包含最后数据的行必须是动态的 该表总是相当小 - 最多20行ish。
我想以下可能会做到这一点? 找到最后填充的行,然后循环以遍历2和最后一个填充行之间的每一行,并将其转换为HTML格式并将其存储为字符串。然后将这些字符串连接成一个最终字符串,放在电子邮件正文中。
我看过Ron de Bruin的指南,但我想在不创建临时文件或使用非Microsoft工具的情况下实现这一目标。该宏将拥有来自专业公司的多个用户,并且需要防弹。我担心如果公司的共享文件夹结构发生变化,保存临时文件并删除它们可能会导致可怕的错误。
答案 0 :(得分:1)
要从列A2复制到列D /或列4最后使用的范围,示例将是
With ThisWorkbook.Worksheets("Sheet1") Dim rng As Range Set rng = .Range("$A$2:" & .Cells( _ .Rows.Count, 4) _ .End(xlUp).Address) Debug.Print rng.Address ' Print on immediate Window rng.CopyPicture Appearance:=xlScreen, Format:=xlPicture End With