我试图将Lotus的邮件导出到excel表,但它不能像我预期的那样工作

时间:2014-08-15 09:42:21

标签: excel-vba lotus-notes lotus vba excel

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

你能救我吗?我不知道为什么剧本会忽略我在路径中所写的内容。

我之所以需要它,我只需要从邮件中找到“ 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

3 个答案:

答案 0 :(得分:1)

您有一个OPENMAIL的电话,它将始终打开您的个人邮件文件。将其更改为仅打开,它应该工作。

答案 1 :(得分:0)

跟进肯的回答。你有一个OPENMAIL 只是。您已经使用OPENMAIL作为后备而不是正确的错误处理,然后您执行的操作始终会导致错误,从而导致后备生效。\ n \ n 您必须找出GETDATABASE调用无法打开指定数据库的原因。您编写它的方式是,您尝试打开本地文件。本地文件确实存在吗?它是在指定的文件路径?如果您尝试在客户端打开它会发生什么?进行尝试的错误信息将具有指导意义。

答案 2 :(得分:0)

Thansk Knut!真的很多!

现在它是如何运作的:

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