我正在使用以下代码自动生成电子邮件。
Public Function GenerateEmail(sendToText As String, _
sendCCText As String, sendBCCText As String, _
subjectText As String, fileName As String)
Application.ScreenUpdating = False
Dim OutApp As Object
Dim OutMail As Object
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItemFromTemplate(fileName)
With OutMail
.sendTo = sendToText
.CC = sendCCText
.BCC = sendBCCText
.Subject = subjectText
.HTMLbody = WorksheetFunction.Substitute(OutMail.HTMLbody, "%TESTNUM%", "98541")
.Attachments.Add (Application.ActiveWorkbook.FullName)
.Display
End With
On Error GoTo 0
Set OutMail = Nothing
Set OutApp = Nothing
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
End Function
我的最终目标是将数据添加到电子邮件中,并将活动文档附加到其中。除了.HTLMbody部分之外,这里的所有内容都按预期工作。它给了我一个错误
“无法获取WorksheetFunction的Substitute属性 类“。
我错过了对图书馆的引用吗?我应该使用不同的东西吗?
电子邮件保存为.oft格式,所以我在电子邮件中有一行有%TESTNUM%,我想用98541替换(或者我需要传递给函数的任何其他字符串)
答案 0 :(得分:0)
我使用非常相似的代码在Excel中使用HTML电子邮件。不同之处在于我使用文本构建了一个临时字符串,您可以在字符串上执行替换代码。 然后你可以简单地使用: .HTMLbody = temp_string
它可能不那么优雅,但它可以帮助你解决问题所在。