Vba 调试Outlook.MailItem

Vba 调试Outlook.MailItem,vba,outlook,Vba,Outlook,我已将Outlook.MailItem下载到我的Y:\文件夹中,位置为: Y:\email.msg 在Outlook VBA中,我想测试此项目上的脚本。然而,我不知道如何定义它 我有以下资料: Dim testMail As MailItem Set testMail = Application.CreateItem(olMailItem) 但是我如何链接到我存储的确切项目呢 之后,我想使用代码测试将附件存储在此文件中(有时并不总是生成损坏的文件): 以及帮助功能: Public Func

我已将Outlook.MailItem下载到我的
Y:\
文件夹中,位置为:

Y:\email.msg
在Outlook VBA中,我想测试此项目上的脚本。然而,我不知道如何定义它

我有以下资料:

Dim testMail As MailItem
Set testMail = Application.CreateItem(olMailItem)
但是我如何链接到我存储的确切项目呢


之后,我想使用代码测试将附件存储在此文件中(有时并不总是生成损坏的文件):

以及帮助功能:

Public Function get_yyyymmdd_prevday(mydate As Date) As String
    Dim yyyymmddstr As String
    'Previous Business Date

    Dim yyyy As String
    Dim mm As String
    Dim dd As String


    If Weekday(mydate) = 2 Then
        mydate = mydate - 3
    Else
        mydate = mydate - 1
    End If


    yyyy = Year(mydate)
    mm = Month(mydate)
    dd = Day(mydate)

    If Month(mydate) < 10 Then
        mm = "0" & mm
    End If
    If Day(mydate) < 10 Then
        dd = "0" & dd
    End If

    ' -->
    yyyymmddstr = yyyy & "_" & mm & "_" & dd
    get_yyyymmdd_prevday = yyyymmddstr
End Function
公共函数get_yyyymmdd_prevday(mydate作为日期)作为字符串
Dim YYYYMMDSTR作为字符串
“上一个营业日期
将yyyy设置为字符串
把mm调成字符串
作为字符串的Dim dd
如果工作日(mydate)=2,则
mydate=mydate-3
其他的
mydate=mydate-1
如果结束
yyyy=年(mydate)
mm=月份(mydate)
dd=天(mydate)
如果月份(mydate)<10,则
mm=“0”和mm
如果结束
如果日期(mydate)<10,则
dd=“0”和dd
如果结束
' -->
yyyymmddstr=yyyy&“&”mm&“&”dd
获取yyyymmdd_prevday=yyyyymmddstr
端函数

要引用.msg文件,有
OpenSharedItem

Option Explicit

Private Sub Reference_msg_file()

    Dim testMailPathFile As String
    Dim testMail As MailItem

    testMailPathFile = "Y:\email.msg"

    Set testMail = Session.OpenSharedItem(testMailPathFile)
    'testMail.Display

    Save_File testMail

ExitRoutine:
    Set testMail = Nothing

End Sub

您已禁用在错误恢复下一步时使用
进行调试。删除这一行并研究如何使用它,然后再将其应用于任何未来的代码。

您可以将“下一步出错时继续”更改为“下一步出错时转到处理程序”

您可以使用它调试Outlook.MailItem

有关详细信息,您可以参考以下链接:


据我所知,用这种方式从下载的邮件中创建对象并不容易。该对象用于应用程序中存在的邮件。如果您进一步解释要测试的内容,可能会有其他解决方案。我正在尝试测试下载Outlook项目附件的vba脚本。通常它工作正常,但这次它存储了一个损坏的文件。所以我想调试代码,看看为什么会发生这种情况。也许如果您共享vba…添加了代码来调试存储文件时损坏文件的部分。然而,它并不总是损坏它,只是偶尔存储一次。因此,为什么我想了解它何时发生,因此我需要知道如何调试它…大概只有某些邮件消息?(如中所述,可复制?)下一步如何应用于错误恢复。让编辑器弹出,而不是隐藏不可预见的错误。
Option Explicit

Private Sub Reference_msg_file()

    Dim testMailPathFile As String
    Dim testMail As MailItem

    testMailPathFile = "Y:\email.msg"

    Set testMail = Session.OpenSharedItem(testMailPathFile)
    'testMail.Display

    Save_File testMail

ExitRoutine:
    Set testMail = Nothing

End Sub