1
我一直試圖循環使用VBA中的一大串.csv文件。他們每個人都是大約50MB。在每次迭代中,我都會打開一個新的CSV來處理數據,但當.csv打開時,會出現一條下載消息,指出文件正在打開,並且進度條總是在VBA等待它完成時卡住。等待在Excel中打開大文件
其實.csv是打開的,因爲如果我點擊進度條上的「取消」代碼繼續運行良好,但我必須在每次迭代中執行手動操作。
我的猜測是,VBA進入下一步,而文件未打開或類似的東西,所以也許如果我做了睡眠或類似的東西,它可以工作,但我所嘗試的東西現在不工作。 (我已經嘗試過Application.EnableEvents = False)。這裏是我的代碼:
Sub GetOptions()
Application.DisplayAlerts = False
Application.EnableEvents = False
Set Dates = Sheets("Dates")
Set Res = Sheets("Options")
Dim dateToday As Date
ETF = "SPY"
nrows = Dates.Cells(Rows.Count, 1).End(xlUp).Row
For i = 708 To nrows
If Dates.Cells(i, 2).Value = "B" Then
dateToday = Dates.Cells(i, 1).Value
dateYear = Year(dateToday)
stringOpening = "P:\Options Database\CSV\" & dateYear & "\bb_" & dateYear & "_" & GetMonth(dateToday) & "\bb_options_" & Format(dateToday, "yyyymmdd") & ".csv"
Workbooks.Open stringOpening, UpdateLinks:=0, ReadOnly:=True
Set Options = Workbooks("bb_options_" & Format(dateToday, "yyyymmdd")).Sheets(1)
Do things...
Workbooks("bb_options_" & Format(dateToday, "yyyymmdd")).Close SaveChanges:=False
End If
Next i
End Sub
我建議你測試並完成您的代碼首先是小文件。讓你的代碼在一組小的(或中等)文件上正確運行,並且適應它,然後才轉移到大文件,這將更容易評估問題。 –
Thx但我已經在較小的文件上嘗試過它,並且它能正常工作,它只在涉及大文件(> 30-40MB)時纔會出現問題 – Clement
您的P驅動器映射到什麼地方?網絡文件夾,還是別的? –