Function FindAndInsert(ByRef sh As Worksheet, ByVal txt As String, _ ByVal OffsetY As Long, ByVal OffsetX As Long, Optional ByVal NewValue = Null) As Range ' ищет на листе sh ячейку, содержащую текст txt, ' после чего (если задано значение NewValue) в ячейку со смещением OffsetY , OffsetX ' вставляет формулу (в стиле R1C1) NewValue ' Возвращает ячейку, предназначенную для вставки On Error Resume Next: Err.Clear Set FindAndInsert = sh.UsedRange.Find(txt, , xlValues, xlPart) '.MergeArea.Cells(1) If FindAndInsert Is Nothing Then Debug.Print "Не найдена ячейка", "Лист: """ & sh.Name & """, строка """ & txt & """", 2 Err.Clear: Exit Function End If 'Debug.Print FindAndInsert.Address, FindAndInsert.Offset(OffsetY, OffsetX).Address Set FindAndInsert = FindAndInsert.Offset(OffsetY, OffsetX) If IsNull(NewValue) Then Exit Function Err.Clear: FindAndInsert.FormulaR1C1 = NewValue If Err Then Debug.Print "Не удалось вставить формулу", "Лист: """ & sh.Name & """, формула """ & _ NewValue & """, ячейка " & FindAndInsert.Address, 2 Err.Clear: Exit Function End If End Function
Поиск значения на листе относительно ячейки с заданным текстом |
- 16875 просмотров
Не получается применить макрос? Не удаётся изменить код под свои нужды?
Оформите заказ у нас на сайте, не забыв прикрепить примеры файлов, и описать, что и как должно работать.
Комментарии
Отправить комментарий