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驱动器映射到什么地方?网络文件夹,还是别的? –