【发布时间】:2020-06-24 20:49:22
【问题描述】:
如果我收到来自特定地址的具有特定主题的电子邮件,我将运行以下脚本。目标是使用超链接标记电子邮件,该超链接将有助于该电子邮件的收件人在原始邮件正文中包含该链接。
Option Explicit
Sub Megatron(MyMail As MailItem)
Dim objOL As Outlook.Application
Dim objNS As Outlook.NameSpace
Dim strID As String
Dim strLink As String
Dim strNewText As String
Dim strLinkText As String
'On Error Resume Next
Set objOL = Application
strID = MyMail.EntryID
Set MyMail = Application.Session.GetItemFromID(strID)
If Not MyMail Is Nothing Then
Set objNS = objOL.Session
MyMail.BodyFormat = olFormatHTML
If MyMail.BodyFormat = olFormatHTML Then
MsgBox ("set to html")
End If
strLink = "http://www.example.com"
strLinkText = "Click on this Example!"
strNewText = "<p><a href=" & Chr(34) & strLink & _
Chr(34) & ">" & strLinkText & "</a></p>"
MyMail.HTMLBody = Replace(MyMail.HTMLBody, "</body>", _
strNewText, 1, 1, vbTextCompare)
MyMail.Save
MsgBox ("Hyperlink appended!")
Else
MsgBox ("Failure!")
End If
End Sub
虽然我收到消息框,告诉我发生了正确的事件,但似乎没有进行任何实际更改(或者没有正确保存?)。
这是我第一次使用任何类型的编程。我已经阅读了一些专门针对 VB 的教程,但我对此很陌生。非常感谢任何帮助/指导!
【问题讨论】:
-
什么是 objMail?你之前设置的吗?和objMsg一样吗?我会在整个过程中添加 MsgBox,呼应 objMsg.HTMLBody 之类的内容,以确保您正在修改您认为正在修改的内容,而不是未定义的对象。看起来您应该在整个 objItem 中进行操作。 . .
-
注释掉
On Error Resume Next- 你打算如何在那里调试?