加载CSV文件更快
我加载了大约75个包含一行的CSV文件。
For dataRow = 8 To Worksheets("Liste").Range("B65535").End(xlUp).Row If Dir(FilePath & Worksheets("List").Cells(dataRow, 2) & ".csv") <> "" Then Open FilePath & Worksheets("List").Cells(dataRow, 2) & ".csv" For Input As #2 Line Input #2, LineFromFile LineItems = Split(LineFromFile, ";") itemNumber = 0 For i = 2 To 367 Worksheets("Calendar").Cells(dataRow, i).value = Replace(LineItems(itemNumber), Chr(34), "") itemNumber = itemNumber + 1 Next End If Close #2 Next
问题是,这个代码非常慢。 加载这些数据需要大约20秒的时间。 (27450个数据集,27,3kb)
有没有办法加快加载? 我认为我的SSD速度够快。
这里有两件事你可以做,以加快你的代码:
- 只做一次双引号字符replace。
- 将所有数据写入单元格一次。
第二项可能会给你最快的速度,因为读/写单元是耗时的。 试试这个代码:
If Dir(FilePath & Worksheets("List").Cells(datarow, 2) & ".csv") <> "" Then Open FilePath & Worksheets("List").Cells(datarow, 2) & ".csv" For Input As #2 Line Input #2, LineFromFile LineFromFile = Replace(LineFromFile, Chr(34), "") lineitems = Split(LineFromFile, ";") With Worksheets("Calendar") .Range(.Cells(datarow, 2), .Cells(datarow, 367)).Value = lineitems End With End If