我尝试使用vba代码编辑OFT
Private Sub CommandButton1_Click()
template = "T:\Coordination des interventions\Coordination des changements\Communications\Interruption de service planifiée - Environnements applicatifs Oracle - Copie.oft"
strNew = InputBox("Jour de la semaine")
strFind = "%>JourSemaine<%"
Dim oApp As Object, oMail As Object
Set oApp = CreateObject("Outlook.Application")
Set oMail = oApp.CreateItemFromTemplate(template)
With oMail
'strFind = "Code:"
'strNew = "Code:" & Cells(4, 3) ' for example
.HTMLBody = Replace(oMail.HTMLBody, strFind, strNew)
.Display
End With
End Sub
这是我收到错误的地方287(我的系统是法语)
.HTMLBody = Replace(oMail.HTMLBody, strFind, strNew)
有人有线索吗?
答案 0 :(得分:1)
确保您设置格式正确的HTML标记。例如:
With oMail
'Set body format to HTML
.BodyFormat = olFormatHTML
.HTMLBody = "<HTML><BODY>Enter the message text here. </BODY></HTML>"
.Display
End With
调用Replace方法也可以替换一些HTML标记。
答案 1 :(得分:1)
对我来说很明显,不是我是Outlook vba专家,而是我上面的人所说的纯粹是html问题,但无法清楚说明-您的 strFind 包含html标签' >”和“ <”,为什么不将它们添加到 strNew 中。如果我假设那只是代表您的错字,而您的实际代码是将"Code:"
替换为"Code: " + Cells(4, 3)
,那么我会问自己,Cells(4,3)是html编码的,即人们常犯的常见错误是文本是否包含标签(例如'>'或'<')或&符号('&'),那么您需要使用替换功能对其进行更改,例如Replace(Cells(4, 3), "&", "&")
或找到为您编码的预定义函数。就您的情况而言,我猜测是法语,也许您的文本包含Unicode字符,例如带有重音符号和坟墓的字母等,这些字符也需要进行编码。