0

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

有人有线索吗?

4

2 回答 2

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 标记。

于 2015-05-20T20:46:46.587 回答
1

对我来说显而易见的事情,不是我是 Outlook vba 专家,而是如果纯粹是一个 html 问题,正如我上面的人所说但未能拼出的那样 - 你的strFind包含 html 标签 '>' 和 '<' 所以为什么没有'您将它们添加到您的strNew中。如果我假设这只是代表您的错字并且您的实际代码被替换"Code:""Code: " + Cells(4, 3)那么我会问自己 Cells(4, 3) 中的内容是 html 编码的,即人们犯的常见错误是文本是否包含标签(例如 '>' 或 '<')或 & 符号('&'),那么您需要使用替换功能来更改它,例如Replace(Cells(4, 3), "&", "&amp;")或找到为您编码的预定义函数。在您的情况下,我猜您是法语,也许您的文本包含 uni-code 字符,例如带有重音符号和坟墓的字母等,这些字符也需要进行编码。

于 2018-09-08T02:06:43.183 回答