使用VBA代码编辑OFT

时间:2015-05-20 17:17:15

标签: vba outlook outlook-vba oft

我尝试使用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)

有人有线索吗?

2 个答案:

答案 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), "&", "&amp;")或找到为您编码的预定义函数。就您的情况而言,我猜测是法语,也许您的文本包含Unicode字符,例如带有重音符号和坟墓的字母等,这些字符也需要进行编码。