【发布时间】:2016-10-29 07:41:50
【问题描述】:
我最近一直收到此错误,我不知道缺少什么?它曾经工作过。调试器在 myStr = objItem.htmlbody 处停止并给出运行时错误 430(类不支持自动化或不支持预期的接口)
Sub UpdateAllMessages()
' Remove the appended url from all effected urls
' Start execution here
Dim olkSto As Outlook.Store
For Each olkSto In Session.Stores
ProcessFolder olkSto.GetRootFolder()
Next
MsgBox "All hyperlinks are back to their original state.", vbInformation, "Success"
End Sub
Sub ProcessFolder(olkFld As Outlook.MAPIFolder)
Dim objItem As Object, olkSub As Outlook.MAPIFolder
Dim objMail As MailItem
Dim myStr As String
'Process each message
For Each objItem In olkFld.Items
'Only messages, not receipts or appointment requests, etc.
If objItem.Class = olMail Then
' Store the HTML Bodyin a variable
myStr = objItem.htmlbody <<<<<<<<<<<<<<<<<<<<<<< DEBUG STOPS HERE ERROR
' Update all URLs
myStr = Replace(myStr, "https://test.com/apps/verify/?url=", "", , , vbTextCompare)
' only if there is a change
' Assign back to HTML Body
If Len(myStr) <> Len(objItem.htmlbody) Then
objItem.htmlbody = myStr
' Save the mail
objItem.Save
End If
End If
Next
Set olkMsg = Nothing
For Each olkSub In olkFld.Folders
ProcessFolder olkSub
Next
Set olkSub = Nothing
End Sub
【问题讨论】:
-
您的标题显示“收件箱”,那么您为什么要搜索系统上每个 PST 和 OST 文件中的每个文件夹和子文件夹?
-
当我将您的代码复制到我系统上的 Outlook 模块时,
myStr = objItem.htmlbody <<<<<<<<<<<<<<<<<<<<<<< DEBUG STOPS HERE ERROR给出了错误。当我添加引用以使尾部成为评论时,我得到myStr = objItem.HTMLBody '<<<<<<<<<<<<<<<<<<<<<<< DEBUG STOPS HERE ERROR。也就是说,htmlbody按预期自动更正为HTMLBody。你是如何设法在你的系统上获得htmlbody -
。我的猜测是,在某个不起眼的文件夹中,您有一些看起来像邮件但不是的东西。哪个文件夹包含给出错误的邮件项?
-
嗨,Tony,我在此处添加了“
-
这让我的猜测更有可能。在工作中,您将拥有诸如 RSS 提要和日记之类的文件夹。自从我尝试以来已经有好几年了,但我记得访问这些文件夹会出现奇怪的错误。发生错误时您访问的是哪个文件夹?
标签: vba vbscript outlook macros