我必须使用Excel对大约80-100mb的.csv文件进行数据分析。为了加快这个过程,我试图创建一个工具来自动化这个过程,但是当它处理大量数据(大约500k行)时,它的速度非常慢。试图最初读取文件。
有人有任何我可以使用的建议吗?我目前正在使用一个按钮供用户选择并加载文件。我已经将我的代码放在下面了。
Dim ws As Worksheet, fileNm As String, fileName As String
Dim FSO As Scripting.FileSystemObject
Set FSO = New FileSystemObject
Set ws = ActiveWorkbook.Sheets("CSV Data")
fileNm = Application.GetOpenFilename("CSV Files (*.csv),*.csv", , "Please select CSV file...")
If fileNm = "False" Then
Exit Sub
Else
With ws.QueryTables.Add(Connection:="TEXT;" & fileNm, Destination:=ws.Range("A1"))
.TextFileParseType = xlDelimited
.TextFileCommaDelimiter = True
.Refresh
End With
End If
答案 0 :(得分:1)
我建议你研究一下PowerQuery。它旨在将大数据加载和操作到Excel。
转到Data
功能区,然后点击"Get Data"-->"From File"-->"From Text/CSV"
在即将出现的窗口中选择您的文件并单击“导入”。在新窗口中,您可以选择“加载”,这将按原样导入数据,或“编辑”,您应该这样做。
现在您处于PowerQuery编辑器中,您可以在其中操作数据,例如重命名列,删除/添加列,更改类型或数学运算。
有关强力查询可以及其工作原理的概述,请参阅https://www.excelcampus.com中的此说明,该说明通常包含很好的教程。
对于Power Query,请转到here
答案 1 :(得分:1)
至少就将数据加载到Excel而言,如果您不需要实时连接数据,则执行以下操作可能更有效:
CopyFromRecordset
方法将数据粘贴到工作表中与this类似的东西;即使源是另一个Excel工作簿,原理也是一样的。
关于您提到的其他问题: