replaceHTMLbody中的文本(从Excel VBA创build电子邮件)
我有下面的VBA代码来正确地使用电子邮件模板创build一个电子邮件,但是我试图使用Substitute()
函数来改变电子邮件正文中的一些文本。 我收到一个错误,我不确定如何解决这个问题,任何帮助将是伟大的!
运行时错误“1004”:
无法获取WorksheetFunction类的replace属性
这是试图从我的模板创build电子邮件的代码…
Public Function GenerateEmail(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 .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
你可以使用Replace
.HTMLbody = Replace(OutMail.HTMLbody, "%TESTNUM%", "98541")
Replace
是正确的方式去这里回答@Brax。
对于任何想要了解这个错误背后原因的人。
只是为了解释为什么1004发生替代,你需要检查使用WorksheetFunction
时的参数。
这里问题是Excel单元格中允许的字符数。 您只能在单元格中放入32767
字符。 现在,当然,你的HTMLBody中有更多的字符,因此错误。
Sub Test() Dim validString As String Dim inValidString As String validString = "a" & Space(32766) inValidString = "b" & Space(32767) '/ Works as the string length is valid cell length : < =32767 MsgBox WorksheetFunction.Substitute(validString, "a", "b") '/ Fails as the string length is invalid in terms of cell length : >32767 MsgBox WorksheetFunction.Substitute(inValidString, "a", "b") End Sub