簡體   English   中英

使用 VBA 代碼編輯 OFT

[英]Editing OFT with VBA code

我正在嘗試使用 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)

有人有線索嗎?

確保您設置了格式良好的 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 標簽。

對我來說顯而易見的事情,不是我是 Outlook vba 專家,但如果這純粹是一個 html 問題,正如我上面的人所說但沒有說明 - 你的strFind包含 html 標簽“>”和“<”那么為什么沒有您在strNew 中添加了它們。 如果我假設這只是代表您的錯字,而您的實際代碼是將"Code:"替換為"Code: " + Cells(4, 3)那么我會問自己 Cells(4, 3) 中有什么它是 html 編碼的,即人們犯的常見錯誤是文本是否包含標簽(例如“>”或“<”)或與號(“&”),然后您需要使用替換功能對其進行更改,例如Replace(Cells(4, 3), "&", "&amp;")或找到為您編碼的預定義函數。 在您的情況下,我猜是法語,也許您的文本包含 uni-code 字符,例如帶有重音和墳墓等的字母,這些字符也需要進行編碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM