将大数据从文本文件导入Excel

我有下一个问题,我需要将约127,000行的excel文件与大约1,500,000行的文本文件进行比较。 文本文件中的每一行都被八个pipe道分开,在Excel中有八列。 我需要在文本行中的第五列与我的Excel文件中的某一列做一个VLookUp。

我一直在做的是:

  1. 我把我的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 
  1. 我将所有的文本文件导入到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)。