0
這是我在StackExchange的第一個問題永遠:-) 我在MS Outlook VBA運行下面的腳本我怎樣才能讓我的VBA展望腳本更有效
Sub export()
On Error resume Next
Dim Ns As Outlook.NameSpace
Dim eitem
Dim oFile As Object
Dim fso As Object
Set Ns = Application.GetNamespace("MAPI")
Set fso = CreateObject("Scripting.FileSystemObject")
Set oFile = fso.CreateTextFile("C:\Users\chakkalakka\Desktop\mails.txt")
'Code
For Each eitem In Ns.Session.Folders.Item(12).Items
oFile.WriteLine eitem.SenderName & "§" & eitem.SentOnBehalfOfName & "§" & eitem.ReceivedTime
Next
oFile.Close
Set Ns = Nothing
Set fso = Nothing
Set oFile = Nothing
Debug.Print "Completed!"
End Sub
一般的腳本是工作的罰款和輸出是正確的。我的問題是:我需要在> 95000項目的文件夾內運行,並且需要很長時間。
所以我的問題是:我能做些什麼來提高性能?
在此先感謝您的幫助
實際需要多長時間?請刪除「On Error resume Next」部分,看看是否有任何錯誤導致延遲。如果是這樣,請在這裏發佈錯誤消息。 –
將'Items'集合分配給一個局部變量。這可避免在For Each循環中重新評估完整的對象鏈。 –
On Error Resume Next應該只用於存在繞過錯誤然後關閉On Error GoTo 0的特定目的。請參閱http://stackoverflow.com/questions/31753201/vba-how-long-does- on-error-resume-next-work/31753321#31753321 and http://stackoverflow.com/questions/29390673/error-handling-in-vba-on-error-resume-next/29390944#29390944 – niton