Форум по VBA и MS Office

VBA, Excel => VBA, макросы в Excel => Тема начата: Посетитель от 02 апреля 2021, 22:41

Название: Excel VBA Макросы. Поиск значения ячейки с помощью Find и ее перезапись.
Отправлено: Посетитель от 02 апреля 2021, 22:41
Как можно перезаписать значение в ячейке, найденной при помощи метода Find?
Например, нужно найти ячейку, в которой находится слово "яблоко", и записать в эту ячейку слово "груша".
Название: Re: Excel VBA Макросы. Поиск значения ячейки с помощью Find и ее перезапись.
Отправлено: Администратор от 02 апреля 2021, 22:46
Макрос работает так. Макрос ищет только одно вхождение слова "яблоко". Если на листе есть несколько ячеек со словом "яблоко", то будет перезаписана только одна ячейка.
Предполагается, что в ячейке кроме слова "яблоко" других слов нет, то есть делается поиск с галочкой "Ячейка целиком".
Макрос учитывает ситуацию, если на листе нет ячейки со словом "яблоко". Для этого используется перехватчик ошибок On Error.

Макрос
Sub Макрос()
   
    On Error Resume Next
    Cells.Find(What:="яблоко", LookIn:=xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, _
        SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Value = "груша"
    On Error GoTo 0
   
End Sub
[свернуть]