首页 > 解决方案 > VBA用用户表单文本框和组合框替换Outlook html模板中的所有占位符

问题描述

我不是程序员,但我喜欢创建小宏来节省迭代任务的时间。现在我正在尝试创建一个能够在 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 正文上只是拒绝替换所有......而且看起来甚至有点随机......所以有些东西被替换了,其余的没有。

有什么帮助吗?

标签: vbareplaceoutlookuserformplaceholder

解决方案


解决了。

问题在于如何格式化 html 正文。我已经在其他文件中编辑了占位符单词,然后直接复制到模板上,保存它。


推荐阅读