【发布时间】:2017-01-05 14:45:44
【问题描述】:
我创建了一个在我的计算机上运行良好的宏。当我上传并在另一台计算机上运行它时,它找不到任何电子邮件。
Set olApp = GetObject(, "Outlook.Application")
Set olNs = olApp.GetNamespace("MAPI")
Set olFldr = olNs.GetDefaultFolder(olFolderInbox)
Set olItms = olFldr.Items
Set olEmail = olApp.CreateItem(olMailItem)
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
subj = "Test email"
Set olMi = olItms.Find("[Subject] = " & Chr(34) & subj & Chr(34))
If Not (olMi Is Nothing) Then
For Each olAtt In olMi.Attachments
Else
' ends up here everytime
我给自己发了一封名为“测试电子邮件”的电子邮件,我可以在我的 Outlook 收件箱中看到它,但我的宏永远找不到它(在我将宏上传到的任何计算机上)。但是,当我在编写程序的原始计算机上运行程序时,它运行良好。不太确定是什么问题。
【问题讨论】:
-
查看代码似乎没问题。我会测试以确保主题实际上是“测试电子邮件”。尝试遍历每个邮件项目并打印出主题行以确保它似乎没有找到它。
-
电脑有什么区别?您是如何将代码从您的计算机传输到另一台的?
-
@Om3r - 我通过电子邮件发送了它。我还将它放在下拉框中,以便通过多台计算机访问它。唯一真正的区别是一台电脑是戴尔,另一台是惠普。操作系统相同,Microsoft Office 2013 都在两者上。
-
更新:我检查了宏的 Outlook 安全设置,所有引用都在 excel 中匹配,但它仍然找不到包含我的 vba 宏的电子邮件。我什至从头开始一个项目来测试它,但仍然一无所获。真的不确定这个问题。