我尝试将邮件从Lotus导出到excel表,但它没有';I don’我不能像预期的那样工作

我尝试将邮件从Lotus导出到excel表,但它没有';I don’我不能像预期的那样工作,excel,lotus-notes,lotus,vba,Excel,Lotus Notes,Lotus,Vba,我在这件事上有点不对劲。问题是我想将邮件导出到excel文件,这部分工作正常,但如果我想将(.nfs)文件更改为另一个用户Lotus Notes文件并运行此脚本bleow,我将获取我的邮件,而不是其他Lotus用户的邮件。因此,无论我在路径中写入什么,它都会随我的邮件一起运行和导出!如果我只是将路径留空或在一个伪路径中写入,它会再次运行并工作正常,但它应该有一个错误,但它没有 你能帮我吗?我不知道为什么脚本忽略了我在路径中写的内容 我之所以需要它,只是因为我需要邮件中的“to:NASATOYMA

我在这件事上有点不对劲。问题是我想将邮件导出到excel文件,这部分工作正常,但如果我想将(.nfs)文件更改为另一个用户Lotus Notes文件并运行此脚本bleow,我将获取我的邮件,而不是其他Lotus用户的邮件。因此,无论我在路径中写入什么,它都会随我的邮件一起运行和导出!如果我只是将路径留空或在一个伪路径中写入,它会再次运行并工作正常,但它应该有一个错误,但它没有

你能帮我吗?我不知道为什么脚本忽略了我在路径中写的内容

我之所以需要它,只是因为我需要邮件中的“to:NASATOYMARKET.com”部分

Public Sub exportNotesMail()

    Dim mailDb As Object, doc As Object, alldocs As Object, Session As Object
    Set Session = CreateObject("Notes.NotesSession")
    Set mailDb = Session.GETDATABASE("", **"C:\Users\username\Desktop\username.nsf"**) <-- This is what is ignored outside by the script.
    If mailDb.IsOpen = False Then mailDb.OPENMAIL
    Set alldocs = mailDb.AllDocuments
    Set doc = alldocs.GetFirstDocument

    While Not (doc Is Nothing)
        'If doc.GetItemValue("Form")(0) = "Memo" Then
                x = x + 1
                Sheet2.Cells(x, 1) = doc.Created
                Sheet2.Cells(x, 2) = doc.GetItemValue("Sendto")(0)
                Sheet2.Cells(x, 3) = doc.GetItemValue("Subject")(0)
                'End If
                'Else: MsgBox "Not match"
        'End If
        Set doc = alldocs.GetNextDocument(doc)
    Wend
End Sub
公共子导出notesmail()
Dim mailDb作为对象、doc作为对象、alldocs作为对象、Session作为对象
Set Session=CreateObject(“Notes.NotesSession”)

设置mailDb=Session.GETDATABASE(“,**”C:\Users\username\Desktop\username.nsf“**”)您可以调用OPENMAIL,它将始终打开您的个人邮件文件。将其更改为仅打开,它应该可以工作

跟进肯的回答。你有一个OPENMAIL并不仅仅是。这是因为您使用OPENMAIL作为回退,而不是进行适当的错误处理,然后您所做的事情总是会导致错误,从而使回退生效。
您必须找出GETDATABASE调用无法打开指定数据库的原因。按照您编写它的方式,您正在尝试打开一个本地文件。本地文件实际存在吗?是否位于指定的文件路径?如果您尝试在客户端中打开它会发生什么?尝试时出现的错误消息将具有指导意义。

Thansk Knut!真是太多了

这就是它的工作原理:

Set mailDb = NSession.GetDatabase("", "C:\Users\user\Desktop\user_rep.nsf")
If mailDb.IsOpen = False Then Call mailDb.Open

谢谢大家!是的,文件是否存在,文件路径是否正确,我可以用客户端打开。所以,不管怎么说,文件没问题,我跟着Ken,现在我收到一条错误消息“类型不匹配”。这里是一个屏幕截图:谢谢你的帮助和时间!:)如果mailDb.IsOpen=False,请使用
尝试,然后调用mailDb.Open
(=add“Call”)我尝试了,但它不起作用,我不知道为什么,但它告诉我,我想要打开的不是好类型。。。但我试图打开“.nfs”文件。所以我不知道我为什么会得到这个消息这可能是问题所在-->“Dim mailDb As Object”?找不到数据库。mailDb什么都不是。Open()不能免费使用。这就是为什么会出现“类型不匹配”。这是Notes中常见的错误消息。如果数据库是lokal,则将GETDATABASE的第一个参数设置为
“”