我有Excel VBA代碼,它應該從Lotus Notes應用程式的收件箱中獲取主題行,然后將其復制到Excel的一個列中。
它似乎將主題填充到了一個單元格中,并對其進行了改寫。
第二個問題是,在回圈的一半時,我得到了一個錯誤
。型別:不匹配
sub Subject_Info() Dim V As Object Dim vn As Object Dim e As Object Dim doc As Object Dim rtitem As Variant Dim nit As Object 視圖 = "$All"/span> Set NSession = CreateObject("Notes.NotesSession" ) Set NMailDb = NSession.GetDatabase(""/span>, "") If Not NMailDb.IsOpen Then NMailDb.OPENMAIL End If Set v = NMailDb.GetView(View) Set vn = v.CreateViewNav() Set e = vn.GetFirstDocument() Do While Not (e Is Nothing) Set doc = e.Document Set nit = doc.GetFirstItem("subject") Lines = Split(nit.Text, vbCrLf) Range("A:A").Resize(UBound(Lines) 1, 1).Value = Application.WorksheetFunction.Transpose(Lines) Set e = vn.GetNextDocument(e) Loop End Subuj5u.com熱心網友回復:
背景:在Notes中,一個檔案中的所有專案都沒有固定的格式。一個檔案可能包含一個 "主題 "專案,而另一個則沒有......但這兩個檔案仍然是完全有效的。這在基于檔案的資料庫中是正常的,與關系型資料庫不同。
在你的案例中,你的代碼行
Set nit = doc.GetFirstItem("subject")將對一個不包含主題項的檔案回傳Nothing。然后下一行也會失敗,因此你的 "Lines "變數中沒有一個有效的陣列。你可以用一個
If doc.HasItem("Subject") then子句來包裝你的代碼。但是這使得它變得不必要的復雜,因為已經有一個方法更適合。簡單地替換
Set nit = doc.GetFirstItem("subject") Lines = Split(nit.Text, vbCrLf)與
Lines = doc.GetItemValue("subject")
GetItemValue總是回傳一個陣列,與專案的存在無關。如果沒有專案,那么它就會回傳一個有一個空字串元素的陣列。這應該可以解決你的 "型別:不匹配 "錯誤。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/313433.html
標籤:
