Sub FindTest()
Dim result As Integer
Dim target As Integer
target = Worksheets("Sheet1").Cells(8, "A")
result = Worksheets("Sheet1").Range("A10:A21").Find(What:=target,_
LookIn:=xlValues, SearchOrder:=byRows).Row
ThisWorkbook.Worksheets("Sheet1").Cells("D7") = result
End Sub
Другой проект с использованием .Find() выдает ошибку. Изолирование кода, необходимого для создания работы .Find(), привело меня к приведенному выше примеру.VBA .Find() выбрасывает «Невозможно получить свойство« Найти свойство класса диапазона »
Выполнение приведенного выше кода приводит к появлению сообщения об ошибке ниже, на линии, начинающейся с строки result = ..., где находится .Find().
Ошибка выполнения «1004»: Невозможно получить Найти объект класса Range
Я заменил .Range() с .Cells() без изменения ошибки сообщение.
Копирование/вставка кода с использованием .Find() для определения последней используемой строки на листе, доступной в других вопросах в StackExchange, не вызывает ошибок. Пример ниже:
Dim lastUsedRow as Integer
lastUsedRow = Worksheets("Receiving Worksheet").Cells.Find(What:="*",_
SearchOrder:=xlRows, SearchDirection:=xlPrevious, LookIn:=xlValues).Row
Я считаю, что переменная «цели» должен быть фактическим значением ячейки - а не сама ячейка. т.е.: target = Worksheets («Sheet1»). Ячейки (8, «A»). Значение –
@ Grade'Eh'Bacon '.Value' является свойством по умолчанию' Cells() '. –
Какова ценность 'target', когда он ломается? –