【问题标题】:Outlook MailItem HTMLBody Replace() not working - brand new be gentleOutlook MailItem HTMLBody Replace() 不工作 - 全新的温柔
【发布时间】:2016-03-22 22:46:04
【问题描述】:

好的,这是更新的版本……但仍然无法正常工作

        NextHTMLBody = nextMessage.HTMLBody
        NextHTMLBody = Replace(NextHTMLBody, "%Customer_Name%", bBodyName)
        NextHTMLBody = Replace(NextHTMLBody, "%##%", formPage.Controls("LoanNumber1").Value)

        With nextMessage
            .HTMLBody = NextHTMLBody
            .Subject = subjEmail
            .To = sendTo
            .Send
        End With

-------------在这里它可以工作..不确定我做了什么不同

        'Set body
        NextHTMLBody = nextMessage.HTMLBody
        NextHTMLBody = Replace(NextHTMLBody, "%Customer_Name%", bBodyName)
        NextHTMLBody = Replace(NextHTMLBody, "%##%", formPage.Controls("LoanNumber1").Value)

        With nextMessage
            .HTMLBody = NextHTMLBody
            '.Body = NextHTMLBody
            .Subject = subjEmail
            .To = sendTo
            '.Send
            .Display
        End With

【问题讨论】:

    标签: vba replace outlook mailitem


    【解决方案1】:

    替换在这里应该可以正常工作:

    If InStr(nextMessage.HTMLBody, "%Customer_Name%") <> 0 Then
        NextHTMLBody = Replace(nextMessage.Body, "%Customer_Name%", bBodyName)
    End If
    

    但在下一个块中,您将放弃上面执行的替换,返回到nextMessage.HTMLBody,而不是继续使用NextHTMLBody。您还从Body 切换到HTMLBody:不确定是否有原因。

    If InStr(nextMessage.HTMLBody, "%##%") <> 0 Then
    
        NextHTMLBody = Replace(nextMessage.HTMLBody, "%##%", _
                                 formPage.Controls("LoanNumber1").Value)
    End If
    

    最好的选择更像是这样(您实际上并不需要 If-Then):

    NextHTMLBody = nextMessage.HTMLBody
    
    NextHTMLBody = Replace(NextHTMLBody, "%Customer_Name%", bBodyName)
    
    NextHTMLBody = Replace(NextHTMLBody, "%##%", _
                                 formPage.Controls("LoanNumber1").Value)
    

    【讨论】:

    • 这看起来很棒!有时它只是第二双眼睛。非常感谢蒂姆,我会在上午尝试并发布结果。度过了我的夜晚!
    • Tim,如果我将 mail 属性切换为 .body 它就可以了。奇怪的是,当我在 VBS 中运行这个 REPLACE() 函数时,它适用于 .HTMLBody
    • 我自己也遇到了这个问题(对于看到这篇文章的其他人,希望这会有所帮助)。发生的事情是,当我在字段中使用“特殊”字符进行替换时,它不起作用。事实证明,HTMLbody 正在将类似 "!NAME" 的内容更改为 "!NAME" (没有所有引号)。因此,当我尝试使用 PS 替换“!NAME”时,它找不到它(因此无法替换它)。所以不要使用特殊字符或空格。归功于 SO stackoverflow.com/questions/24154063/replace-text-in-html-body 的这篇文章
    猜你喜欢
    • 2023-03-18
    • 1970-01-01
    • 2017-02-16
    • 1970-01-01
    • 1970-01-01
    • 2017-07-27
    • 1970-01-01
    • 2017-04-04
    • 2013-07-07
    相关资源
    最近更新 更多