Outlook VBA脚本停止工作

时间:2018-02-19 12:12:01

标签: regex vba outlook outlook-vba

我收到大量关于当前打开的问题故障单的电子邮件,除了主题末尾的字符串 "issued at 11/14/17 6:28 PM" 外,所有这些都有相同的主题(数据和时间取决于当然是电子邮件的时间)

我有一条规则要将所有这些内容移到问题文件夹中,但我无法按主题分组,因为该日期&时间,所以我想删除它。

我添加了一个选项来运行脚本到我的移动'规则并创建了以下脚本:

Public Sub RemoveIrDateTime(Item As Outlook.MailItem)

    'stringToMatch = "issued at 11/14/17 6:28 PM"

    Set Reg1 = New RegExp

    With Reg1
        .Pattern = "issued at \d{1,2}/\d{1,2}/\d\d .+"
        .Global = True
        End With

    Item.Subject = Reg1.Replace(Item.Subject, "[Date/Time]")

  If Item.Saved = False Then
    Item.Subject = Trim$(Item.Subject)
    Item.Save
  End If

End Sub

现在我已经这个工作,但后来添加了一些逻辑来删除一些其他无关的字符,它停止工作(我知道,我知道,保留最后的工作副本等)。据我所知,上面的代码是原始的工作版本。

该规则最终解雇(我将消息移动到文件夹中),但脚本不再执行任何操作。

我目前有3个小时的VBA和Outlook脚本使用经验,不知道在哪里查找任何错误日志或调试信息。

我正在运行Office Professional Plus 2010并使用Visual Basic for Applications V7.0

编辑:

脚本现在是:

Public Sub NewDateTime(Item As Outlook.MailItem)

        Item.Subject = "[Date/Time]"

        Item.Save

    End Sub

但仍然无法正常工作。我在每次编辑后都没有做任何事情来刷新脚本 - 我需要吗?我没有在今天早上开发它时看到Outlook正在接受我的更改。

1 个答案:

答案 0 :(得分:-1)

根本原因似乎是宏已被禁用。

我在同一个VBA文件中创建了一个虚拟宏,并使用F8尝试手动运行它,并得到消息'此项目中的宏被禁用。请参考等等。

我进入了Outlook->文件 - >选项 - >信任中心 - >信任中心设置 - >宏设置并启用了所有宏,但在重新启动Outlook之前仍然存在问题。