【问题标题】:VBA replacing ALL placeholders in Outlook html template with userform textbox and comboboxVBA用用户表单文本框和组合框替换Outlook html模板中的所有占位符
【发布时间】: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 的代码时 delete On Error Resume Next 在使用它之前。编辑问题,以便潜在响应者尝试回答变得更可行。照原样,它几乎和没有代码一样。如果您看到错误,请将其添加到问题中。
  • 谢谢,按照你的建议删除错误恢复,事实还是一样。我被替换了几个占位符(和以前一样)而不是全部。
  • 无法在仅包含文本的模板上重新创建。

标签: vba replace outlook userform placeholder


【解决方案1】:

解决了。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-25
    • 2020-11-02
    • 1970-01-01
    • 1970-01-01
    • 2021-12-21
    • 2018-03-21
    • 2013-06-07
    相关资源
    最近更新 更多