Я новичок в VBA, поэтому ваша помощь очень ценится. Мой код берет частичное значение из строки в каждой строке диапазона (в листе «Lookup»), ищет это частичное значение в диапазоне (в листе «CF») и выводит значение, соответствующее частичному значению ( но находится в другом столбце) к определенному диапазону в листе «Поиск». Следующий код работает для самого первого экземпляра цикла, а затем выдает ошибку «Переменная объекта не установлена или отсутствует». Похоже, проблема в переменной Val, но я не могу заставить это работать. Не могли бы вы помочь мне понять, правильно ли я определяю Вал? Я использую Val для хранения номера строки, который соответствует позиции значения, которое я пытаюсь найти. Возможно, есть более быстрый способ сделать этот поиск (значение интереса находится в другом столбце от значения поиска)? Спасибо!
Sub CF_Lookup()
Dim Lastrow As Long
Dim i As Integer
Dim Str As String
Dim lRange As Range
Dim Val As Long
With Sheets("Lookup")
Lastrow = .Cells(.Rows.Count, "A").End(xlUp).Row
For i = 2 To Lastrow
With .Range("A" & i & ":A" & Lastrow)
Str = Left(Cells(i, 1).Value, 8)
Set lRange = Worksheets("CF").Range("A:M").Find(Str, Lookat:=xlPart)
Val(i) = lRange.Row
Worksheets("Lookup").Range("P" & i).Value = Worksheets("CF").Range("M" & Val(i)).Value
End With
Next i
End With
End Sub