Еще раз у меня проблема со смешанным форматом данных в файле Excel.У меня есть файл с колонкой с именем «Имя пользователя».Самая большая проблема, которую я должен решить, состоит в том, что данные в этом столбце состоят из фамилии и имени человека в полностью смешанном формате.Например:
«Имя пользователя»Джон СмитКартер МайкГарфилд, Том
И так далее ...
У меня есть второй файл, который содержит данные в правильном формате, у меня есть 3 столбца: «Фамилия», «Имя »и« Идентификатор ».Что мне нужно сделать, это скопировать идентификатор, который соответствует человеку из второго файла в первый файл.
Моя идея состояла в том, чтобы пройтись по столбцу «Имя пользователя» и сравнить его с помощью функции InStr с первым столбцом «Фамилия» и, если он совпадает, сравнить со столбцом «Имя».Затем, если есть совпадение, я бы скопировал Id в столбец «B» в первом файле.Но оказалось, что я слишком слаб в VBA.
Вот что я написал.Это не работает вообще, но, возможно, поможет вам понять, в чем заключается моя проблема:
Option Explicit
Sub FindID()
Dim rLastCell, rFirstCell, rUserCell As Range
Dim LastCell, FirstCell, UserCell As Range
Dim file As Workbook
Dim i As Long
'open file to compare
Set file = Workbooks.Open(Filename:=ThisWorkbook.Path & "\gooddata.xls")
'set last used cell
Set rLastCell = file.Worksheets("Sheet1").Range("A65536").End(xlUp)
Set rFirstCell = file.Worksheets("Sheet1").Range("B65536").End(xlUp)
Set rUserCell = ThisWorkbook.Worksheets("Sheet1").Range("C65536").End(xlUp)
With ThisWorkbook.Sheets("Sheet1")
For Each UserCell In .Range("C2:C" & rUserCell.Row)
For Each LastCell In file.Sheets("Sheet1").Range("A2:A" & rLastCell.Row)
If InStr(0, UserCell.Value, LastCell.Value, vbTextCompare) <> 0 Then
For Each FirstCell In file.Sheets("Sheet1").Range("B2:B" & rFirstCell.Row)
If InStr(0, UserCell.Value, FirstCell.Value, vbTextCompare) <> 0 Then
'copy id from gooddata.xls to baddata.xls
End If
Next FirstCell
End If
Next LastCell
Next UserCell
End With
file.Close savechanges:=True
Set file = Nothing
End Sub
Спасибо за любой совет.