Мне нужно использовать функцию «найти», чтобы получить строку значения, где это значение определено из другого рабочего листа, но я продолжаю получать неопределенные ошибки объекта-переменной, даже когда я пытаюсь определить все.
Изначально я смог заставить работать код ниже. (Я вставляю «тестовую» версию кода, которая использует только небольшой диапазон из 20 ячеек. Результат помещается в ячейку «А1», чтобы убедиться, что он работает правильно при тестировании.)
X = Range("D6").Value
Range("A1").Value = Range("D2:D20").Find(X).Row
Но Когда я использую эту строку в большом наборе данных, я получаю сообщение об ошибке 91 («Переменная объекта или переменная блока не установлена»).
Поэтому вместо этого я пробую код, который определяет все более явно, но для жизнь моя, я не могу заставить этот код работать даже на небольшом тестовом наборе. (Я также включил несколько строк, которые я пробовал, но они также приводят к ошибкам.)
Sub Test3()
Sheets("2017").Select
Dim X As Long
X = Range("D6").Value
Dim ws As Worksheet
Set ws = Worksheets("2017")
Dim SearchRange As Range
Dim FindRow As Range
Set SearchRange = ws.Range("D2", ws.Range("D20").End(xlUp))
Set FindRow = SearchRange.Find(X, LookIn:=xlValues, lookat:=xlWhole)
If Not FindRow Is Nothing Then ReturnRowNumber = FindRow.Row
'Range("A1").Value = FindRow 'Running this row gives application-defined error 1004
Dim i_2017 As Long
i_2017 = FindRow.Rows(1) 'All of these rows give object variable not set error 91
'i_2017 = FindRow
'i_2017 = FindRow.Rows.Item(1)
Range("A1").Value = i_2017 'Check that the sub returns 6
End Sub
Если я пытаюсь вернуть «FindRow» в ячейку «A1», я получаю ошибку 1004 («Application- определенная или определенная объектом ошибка ")
Если я пытаюсь сохранить" FindRow "в качестве другой переменной или использовать свойство" Item ", я получаю ошибку 91 (" Переменная объекта или переменная блока не установлена ")