【发布时间】:2020-12-13 11:19:37
【问题描述】:
我不是程序员,但我喜欢创建小宏来节省迭代任务的时间。现在我正在尝试创建一个能够在 HTML 模板上替换几个占位符的用户表单。
到目前为止我制作的代码:
Private Sub CommandButton1_Click()
Dim OutApp As Object
Dim OutMail As Outlook.MailItem
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = Application.CreateItemFromTemplate("C:\path\ciccio.oft")
With OutMail
.To = TextBox4.Text
.CC = ""
.BCC = ""
.HTMLBody = Replace(.HTMLBody, "###PLACEHOLDER1###", TextBox1.Text)
.HTMLBody = Replace(.HTMLBody, "###PLACEHOLDER2###", ComboBox1.Text)
Unload UserForm2
.Display
End With
Set OutMail = Nothing
Set OutApp = Nothing
End Sub
这在纯文本正文上效果很好,但在 HTML 正文上只是拒绝替换所有 .. 并且看起来甚至有点随机..所以有些东西被替换了,其余的都没有。
有什么帮助吗?
【问题讨论】:
-
在极少数情况下它很有用,但是当您在
With OutMail之前看到带有On Error Resume Next的代码时 deleteOn Error Resume Next在使用它之前。编辑问题,以便潜在响应者尝试回答变得更可行。照原样,它几乎和没有代码一样。如果您看到错误,请将其添加到问题中。 -
谢谢,按照你的建议删除错误恢复,事实还是一样。我被替换了几个占位符(和以前一样)而不是全部。
-
无法在仅包含文本的模板上重新创建。
标签: vba replace outlook userform placeholder