Ошибка выполнения 91 vba

У меня есть эта идея – в файле я устанавливаю имя и файл для поиска и хочу, чтобы VBA открывал этот файл, перебирал все листы, находил значение, которое я ищу и возвращаю некоторые значения в той же строке. Во-первых, я всего лишь нахожу метод поиска только в одном столбце, но в моем файле значение может быть в 5-6 столбцах. У кого-нибудь есть идея, как я могу искать в рабочем листе отверстия? Также у меня есть простое решение (данные, которые я искал, всегда будут в столбцах D, F, H, J …), и я просто проверю худший случай и перейду в целом, если не найду его, не верну мою информацию, закройте файл и закройте макросы. Пока это мой код:

Sub BTS() Dim RowID As Integer Dim SiteID As String Dim objFindSiteID As Range Dim objControllerData As Workbook Dim WS As Worksheet Dim lastRow As Long Dim v As Range SiteID = ThisWorkbook.Sheets("Sheet1").Range("A3").Value If ThisWorkbook.Sheets("Sheet1").Range("B3").Value = "someValue" Then Set objControllerData = Workbooks.Open("C:\Users\bla\bababa\bla.xls", True, True) End If For Each WS In objControllerData.Worksheets lastRow = WS.Cells(WS.Rows.Count, "B").End(xlUp).Row For I = 1 To lastRow v = WS.Range("D" & I).Value If v = SiteID Then RowID = v.Row MsgBox lastRow MsgBox RowID End If Next I Next WS End Sub 

Я почти выполнил эту задачу, но есть проблема – ошибка времени выполнения 91. Я уже справился с ошибкой 424, 1004, но это трудно найти, почему произошло: /

удалите Dim v As Range , вы дадите ему значение, а не диапазон.

или, сохраняйте диапазон и удаляйте .Value в конце равной линии. затем получите значение другому примитиву, например myValue = v.Value

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