Как правильно сохранить значение (я) строки (от i до n) для последующего использования в коде?(Функция поиска / сопоставления VBA) - PullRequest
0 голосов
/ 16 января 2019

Я новичок в 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...