Outlook 中的 VBA:“Microsoft Outlook 已停止工作”消息
Posted
技术标签:
【中文标题】Outlook 中的 VBA:“Microsoft Outlook 已停止工作”消息【英文标题】:VBA in Outlook: "microsoft outlook has stopped working" message 【发布时间】:2012-07-05 09:54:48 【问题描述】:我尝试编写一个 VBA 脚本,它会自动回复共享邮箱收件箱中的邮件。目前这只是一个测试,稍后我想回复新收到的邮件。 但是,到目前为止,如果我尝试运行代码,Outlook 会崩溃并显示错误“microsoft Outlook 已停止工作”,我必须重新启动 Outlook。
仅供参考:我使用的是德语 Outlook 2007 版。
Sub ReplyMail()
Dim myOutApp As Object
Dim myNameSpace As Object
Dim myMailFolder As Object
Dim myRecipient As Outlook.Recipient
boxName = "sharedmailbox@host.de" 'configure mailbox address here
'Get Mailbox folder
Set myOutApp = CreateObject("Outlook.application")
Set myNameSpace = myOutApp.GetNamespace("MAPI")
Set myRecipient = myNameSpace.CreateRecipient(boxName)
myRecipient.Resolve 'convert mail address into mailbox name
Set myMailFolder = myNameSpace.GetSharedDefaultFolder(myRecipient, olFolderInbox)
Dim Item As Object
Set Item = myMailFolder.Items(1)
Dim oMail As Outlook.MailItem
Set oMail = Item.Reply
With oMail
.BodyFormat = olFormathtml
.HTMLBody = "<HTML>This is a test mail.</HTML>"
.Send
End With
End Sub
如果使用“.display”而不是“.send”,邮件会正确弹出,我可以手动发送邮件。
我真的不知道如何解决这个错误,请帮助!
谢谢!
迈克尔
【问题讨论】:
【参考方案1】:很奇怪! 除非它是一个特殊的错误,否则我看不到它。 小备注:将您的对象声明为 Outlook 对象:
Dim myOutapp as outlook.application
Dim myNameSpace as outlook.namespace
Dim myMailFolder as Mapifolder
这用于一般性能(Object 是一般类型),但它几乎肯定不会解决您的问题。
如果我遇到您的情况,我会尝试从内存中完全退出 Outlook,修复或重新安装 Outlook/Office。我不认为您的代码有什么大问题。由于 .display 有效,我很惊讶。
【讨论】:
另一件有趣的事情是,在我重新启动已损坏的 Outlook 后会出现回复邮件。在其他论坛中,我读到有些人收到安全消息,有些程序想要自动发送电子邮件,但我没有。会不会有问题? 老实说,我不知道。在处理附件时,我已经完成了一些自动发送电子邮件和从邮箱(也是网络上的功能邮箱)中检索邮件的自动化,我从未遇到过任何问题。我在互联网上读到其他人在 Outlook 自动化方面遇到问题,有时在重新安装或修复 OL 应用程序后得到解决。您不能显示而不是发送吗?在我工作的前一家公司,甚至违反一般规则,在发送前没有明确修改就自动发送邮件。【参考方案2】:访问权限可能存在问题 C:\用户\
从某个时间点开始打开某些电子邮件时,我遇到了类似的问题。不知何故,对该文件夹的访问权限已被取消配置。 所以我按照这个程序,一切都很好了: http://www.addictivetips.com/windows-tips/windows-7-access-denied-permission-ownership/
【讨论】:
您可以通过至少包含链接中的一些信息来改进您的答案,以防有一天它中断。以上是关于Outlook 中的 VBA:“Microsoft Outlook 已停止工作”消息的主要内容,如果未能解决你的问题,请参考以下文章