将大数据从文本文件导入Excel
我有下一个问题,我需要将约127,000行的excel文件与大约1,500,000行的文本文件进行比较。 文本文件中的每一行都被八个pipe道分开,在Excel中有八列。 我需要在文本行中的第五列与我的Excel文件中的某一列做一个VLookUp。
我一直在做的是:
- 我把我的excel文件中的第一行,我在文本文件中find它,我只导入该行,然后我在excel的各自的列适合行,并在最后我做VLookUp。
Sub test() Dim textline As String, rw As Long, lRow As Long, rw1 As Long Dim sPath As String, text As Variant rw1 = 1 sPath = "My_path" With ActiveWorkbook.Sheets("Sheet1") For rw = 2 To .Cells(Rows.Count, 1).End(xlUp).Row text = range("A" & rw).Value2 Open sPath For Input As #1 Do Until EOF(1) Line Input #1, textline If InStr(textline, CStr(text)) Then Sheets(2).Cells(rw1, 1) = textline Sheets(2).range("A" & rw1).TextToColumns Destination:=range("A" & rw1 & ":H" & rw1), DataType:=xlDelimited, _ TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _ Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _ :="|", TrailingMinusNumbers:=True rw1 = rw1 + 1 Exit Do End If Loop Close #1 Next rw End With End Sub
- 我将所有的文本文件导入到excel中,然后我将它们放在各自的列中,最后我做了VLookUp。
Sub test() Dim textline As String, rw As Long, lRow As Long, rw1 As Long Dim sPath As String, text As Variant, sh As String, c As Integer sh = "Sheet" c = 1 rw = 1 rw1 = 1 sPath = "My_path" With ActiveWorkbook.Sheets("Sheet1") Open sPath For Input As #1 Do Until EOF(1) Line Input #1, textline Sheets("Sheet1").range("A" & rw) = textline Exit Do End If rw = rw + 1 Loop Close #1 End With With ActiveWorkbook.Sheets(1) For rw1 = 1 To .Cells(Rows.Count, 1).End(xlUp).Row Sheets("Sheet1").range("A" & rw1).TextToColumns Destination:=range("A" & rw1 & ":H" & rw1), DataType:=xlDelimited, _ TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _ Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _ :="|", TrailingMinusNumbers:=True Next rw1 End With End Sub Now
问题是,这两种方法需要太长时间,有谁知道一个更好的解决scheme,可以帮助我呢?
谢谢你的build议
由于您超出了正常的行数限制,因此如果您使用Excel进行设置,则build议使用Get&Transform (用于Excel 2016)或Power Query (用于Excel 2010和2013)。