使用VBA代码编辑OFT

问题描述 投票:0回答:2

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

有人有线索吗?

vba outlook outlook-vba oft
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标记。


1
投票

对我来说明显的事情,不是说我是outlook vba专家,但如果纯粹是一个html问题,因为我上面的人已经说过但未能说清楚 - 你的strFind包含html标签'>'和'<'所以为什么避风港'你在strNew中添加了它们。如果我假设这只是你的错误而你的实际代码用"Code:"替换"Code: " + Cells(4, 3)然后我会问自己什么是单元格(4,3)是html编码,即人们犯的常见错误是文本包含标签(例如'>'或'Replace(Cells(4, 3), "&", "&amp;")或找到为您编码的预定义函数。在您的情况下,我猜测是法语,也许您的文本包含单字符字符,如带有重音和坟墓的字母等,也需要要编码。

© www.soinside.com 2019 - 2024. All rights reserved.