Я бы сделал что-то подобное, когда вы проверяете себя для каждого идентификатора пользователя. Измените его, чтобы оно работало на вас. Это должно идти довольно быстро.
Примечание. У меня есть ссылка на Microsoft Scripting Runtime
, которая включает объекты Dictionary
, FileSystemObject
, File
и TextStream
.
Sub test()
Dim i As Long
Dim dicItems As Dictionary
Dim fso As FileSystemObject
Dim oFile As File
Dim saItems() As String, saReturn() As String
Dim oStream As TextStream
Dim vUserID As Variant
'Get stream of file
Set fso = New FileSystemObject
Set oFile = fso.OpenTextFile("YourFile.csv")
Set oStream = oFile.OpenAsTextStream(ForReading)
Set dicItems = New Dictionary
'loop through items that you want extracted and put in dictionary
vUserID = Range("A1", Range("A" & Rows.Count).End(xlUp)).Value2
ReDim saReturn(1 To UBound(vUserID))
For i = 1 To UBound(vUserID)
dicItems.Add vUserID(i, 1), i
Next i
'Loop through stream lines
Do While Not oStream.AtEndOfStream
saItems = Split(oStream.ReadLine, ",")
If dicItems.Exists(saItems(0)) Then
saReturn(dicItems(saItems(0))) = saItems(1)
End If
Loop
'Return information to your spreadsheet
Range("B1", Range("B" & UBound(saReturn))) = Application.Transpose(saReturn)
End Sub