获取运行VBA脚本的Outlook 2007时出现问题

获取运行VBA脚本的Outlook 2007时出现问题,vba,outlook,outlook-2007,Vba,Outlook,Outlook 2007,我正试图让Outlook在每日电子邮件中将附件保存到一个文件夹中,在这个文件夹中,我可以让一个文件系统观察者随时解析和分析附件(它是数据完整性检查器的报告)。我已经建立了一个应该运行VBA脚本的规则,但它并没有按照我所能说的运行。我已经在VB6中验证了代码实际上会将一些文本保存到文件中,因此如果Outlook实际运行VBA脚本,它应该能够执行相同的操作。但事实并非如此!谁能看出我到底做错了什么 Dim WithEvents objInbox As Outlook.Items Private S

我正试图让Outlook在每日电子邮件中将附件保存到一个文件夹中,在这个文件夹中,我可以让一个文件系统观察者随时解析和分析附件(它是数据完整性检查器的报告)。我已经建立了一个应该运行VBA脚本的规则,但它并没有按照我所能说的运行。我已经在VB6中验证了代码实际上会将一些文本保存到文件中,因此如果Outlook实际运行VBA脚本,它应该能够执行相同的操作。但事实并非如此!谁能看出我到底做错了什么

Dim WithEvents objInbox As Outlook.Items

Private Sub Application_Startup()
   Set objInbox = Session.GetDefaultFolder(olFolderInbox).Items
End Sub

Sub SnagAttachment(theItem As MailItem)
    On Error Resume Next
    Dim fnum As Integer
    fnum = FreeFile()
    Open "c:\temp\success.txt" For Output As #fnum
    Print #fnum, "Ran SnagAttachment Successfully"
    Close #fnum
End Sub

请注意,当我使用规则向导并选择“运行脚本”时,子SnagAttachment将作为可选择的脚本列出。

请尝试找出确切的问题:

  • 检查宏安全设置。最大值必须设置为不高于“所有宏的警告”。
  • 尝试使用单个测试子模块创建新模块: Sub Test(Item as Outlook.MailItem) MsgBox "test" End Sub 子测试(作为Outlook.MailItem的项目) MsgBox“测试” 端接头 然后设置一个新规则来处理作为唯一操作运行此子项的所有传入消息,并临时禁用所有其他规则。然后给自己发个信息。如果没有弹出框,这可能表示Outlook安装不正确。请尝试重新安装,或直接致电MS寻求支持
  • 如果上一次测试成功,请尝试使用`Scripting.FileSystemObject`对象而不是`Freefile()`来创建和填充文件。这只是为了测试您在这里是否遇到了一些奇怪的bug。值得一试,对吧
  • 确保您的规则条件设置正确。可能有一个小故障或拼写错误的情况下,只是删除所有的消息,您希望这个脚本运行

  • 试着找出确切的问题:

  • 检查宏安全设置。最大值必须设置为不高于“所有宏的警告”。
  • 尝试使用单个测试子模块创建新模块: Sub Test(Item as Outlook.MailItem) MsgBox "test" End Sub 子测试(作为Outlook.MailItem的项目) MsgBox“测试” 端接头 然后设置一个新规则来处理作为唯一操作运行此子项的所有传入消息,并临时禁用所有其他规则。然后给自己发个信息。如果没有弹出框,这可能表示Outlook安装不正确。请尝试重新安装,或直接致电MS寻求支持
  • 如果上一次测试成功,请尝试使用`Scripting.FileSystemObject`对象而不是`Freefile()`来创建和填充文件。这只是为了测试您在这里是否遇到了一些奇怪的bug。值得一试,对吧
  • 确保您的规则条件设置正确。可能有一个小故障或拼写错误的情况下,只是删除所有的消息,您希望这个脚本运行

  • 为了使脚本正常工作,您需要更改Outlook中的安全设置。转到工具>宏>安全,并将其更改为“所有宏的警告”。然后重新启动Outlook


    希望这有帮助

    为了让脚本正常工作,您需要更改Outlook中的安全设置。转到工具>宏>安全,并将其更改为“所有宏的警告”。然后重新启动Outlook


    希望这对您有所帮助

    当您将
    放在程序顶部的“错误恢复下一步”
    上时,您如何知道它是否工作?你永远不会发现

    以下是创建脚本的规则,脚本应作为规则的一部分运行:

    另请注意以下注意事项:

    对于高流量,“运行脚本”规则不是一个好的选择 应用程序,因为Outlook可能会跳过应用规则(如果太多) 许多物品到达时都符合规定的条件


    当您将
    放在程序顶部的“错误恢复下一步”
    上时,您如何知道它是否工作?你永远不会发现

    以下是创建脚本的规则,脚本应作为规则的一部分运行:

    另请注意以下注意事项:

    对于高流量,“运行脚本”规则不是一个好的选择 应用程序,因为Outlook可能会跳过应用规则(如果太多) 许多物品到达时都符合规定的条件


    我也遇到了同样的问题,在我看来,如果代码中有错误,脚本甚至不会启动。这与标准VBA不同,在标准VBA中,调试器会针对运行时错误弹出。例如,我的函数末尾有一个标签,它后面缺少冒号。这导致脚本根本不运行(与运行到此行然后失败相反)。我建议注释掉所有代码,从msgbox“hello world”开始。我会在您调试代码时将其保留在代码中,以了解代码正在运行,但您可能需要多次关闭消息框。反复添加代码行,直到发现问题所在。

    我也遇到了同样的问题,在我看来,如果代码中有错误,脚本甚至不会启动。这与标准VBA不同,在标准VBA中,调试器会针对运行时错误弹出。例如,我的函数末尾有一个标签,它后面缺少冒号。这导致脚本根本不运行(与运行到此行然后失败相反)。我建议注释掉所有代码,从msgbox“hello world”开始。我会在您调试代码时将其保留在代码中,以了解代码正在运行,但您可能需要多次关闭消息框。反复添加代码行,直到发现问题所在。

    哇,真不敢相信还没有人帮过你。如果这仍然是一个问题,你有没有得到任何进一步的代码以上?如果你正在运行一个脚本(假设)当一封有附件的新邮件到达时,我不清楚你为什么要使用Application_Startup事件。谢谢你的来电!显然,没有任何帮助,而且我相信上面的代码是从MSDN中提取的,所以它有官方的印记。。。分类