Глядя на цифры с добавочным нулем в конце

У меня есть три листа: Sheet1, sheet2 и sheet3. Sheet3 – мой лист результатов.

У меня есть идентификатор в столбце E листа 3, скопированный из столбца P листа 1. Я сравниваю идентификатор sheet3 с идентификатором sheet2. Я успешный. но у меня проблема при сравнении. Идентификатор обычно составляет от 11 до 13 цифр. Case1, в немногих случаях у меня есть id в листе 3 как D2C12682300, а в листе2 – тот же идентификатор, что и D2C1268230000, в этом случае я хочу, чтобы они были сопоставлены, но, согласно моему коду, он не подбирается.

Случай 2, в somecase i имеет id в sheet3 как D2C12682300_id4576901, а на листе2 i имеет тот же идентификатор, что и D2C1268230000. Я хочу, чтобы они соответствовали друг другу, но мой код работает не так.

Может кто-то подскажет, как я мог бы включить эти условия в свой код. Я поражен, как это сделать.

Ниже приведен код, который я использую для поиска идентификатора от листа3 до листа2. Я хочу включить эти случаи в этот код.

Sub lookup() Dim lLastRow As Long Dim rng As Range Dim i As Long 'Copy lookup values from sheet1 to sheet3 ThisWorkbook.Sheets("S").Select lLastRow = ActiveSheet.Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row Range("P5:P" & lLastRow).Copy Destination:=Sheets("Result").Range("E5") Range("G5:G" & lLastRow).Copy Destination:=Sheets("Result").Range("H5") 'Go to the destination sheet Sheets("Result_").Select For i = 5 To lLastRow 'Search for the value on sheet2 Set rng = Sheets("P").UsedRange.Find(Cells(i, 5).Value) 'If it is found put its value on the destination sheet If Not rng Is Nothing Then Cells(i, 6).Value = rng.Value Cells(i, 1).Value = rng.Offset(0, 1).Value Cells(i, 2).Value = rng.Offset(0, 2).Value Cells(i, 3).Value = rng.Offset(0, 3).Value Cells(i, 4).Value = rng.Offset(0, 9).Value Cells(i, 9).Value = rng.Offset(0, 10).Value Cells(i, 12).Value = rng.Offset(0, 6).Value Cells(i, 13).Value = rng.Offset(0, 5).Value Cells(i, 14).Value = rng.Offset(0, 8).Value End If Next i End Sub 

Используйте подстановочный знак:

 Set rng = Sheets("P").UsedRange.Find(Cells(i, 5).Value & "*", LookAt:=xlWhole) 

Также избегайте использования. .Select и объективируйте .Range, .Cells etc. Читайте, как избежать выбора .

Давайте будем гением компьютера.