vba自动生成html,动态生成嵌入在VBA电子邮件生成中的HTML表

我正在尝试创建一个包含正文文本和表格的电子邮件,该表格可以自动生成给定的数据集 . 现在,我从单独的工作表中提取所有输入的数据,然后您只需从下拉列表中选择一个人名称并自动填充数据 . 我希望将所需列中的数据提取到电子邮件正文中间的表中 . 但是,我不知道如何使表格格式化为HTML动态,以便它可以有2,3,1行数据,具体取决于显示的内容 .

我想要的另一个选项是VBA根据列表中的名称自动查找相似的数据,并根据这些自动提取数据,但我不知道是否可行 .

我对VBA非常了解 - 仅在2周前为了这封电子邮件的目的而自学,所以我不是100%熟悉所有选项 . 但是,我在下拉布局中使用循环的一个问题是,必须将自动生成公式的信息粘贴到列中,因此从技术上讲,它们不是空白行 .

我还需要在单独的工作表中插入单元格,因为我需要能够对其进行HTML格式化 . 我不确定我所做的任何事情是否是最好的方式,但我无法找到更好的方法 .

这是我的代码:

Sub SendEmail(what_address As String, subject_line As String, mail_body As String)

Dim olApp As Outlook.Application

Set olApp = CreateObject("Outlook.application")

Dim olMail As Outlook.MailItem

Set olMail = olApp.CreateItem(olMailItem)

olMail.To = what_address

olMail.Subject = subject_line

olMail.BodyFormat = olFormatHTML

olMail.HTMLBody = mail_body

olMail.Display

'olMail.Send

End Sub

Sub SendMassEmail()

row_number = 1

row_number = row_number + 1

Dim mail_body_message As String

Dim full_name As String

Dim amount As String

Dim name_two As String

Dim mail_body_table As String

mail_body_message = Sheet2.Range("B2")

full_name = Sheet1.Range("E" & row_number + 1)

name_2= Sheet1.Range("G" & row_number + 1)

amount = Format(Sheet1.Range("K" & row_number + 1), "Currency")

mail_body_message = Replace(mail_body_message, "replace_name_here", full_name)

mail_body_message = Replace(mail_body_message, "nametwo_here", name_two)

mail_body_message = Replace(mail_body_message, "replace_amount", amount)

Call SendEmail(Sheet1.Range("F" & row_number + 1), "Test 2018", mail_body_message)

'MsgBox "Email Send Complete"

End Sub

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值