Как найти все ячейки, содержащие нужную формулу?
Категория: Basic
2012-08-23 15:53:41
Для того, чтобы получить диапазон содержащий все ячейки, в которых находится нужная формула, достаточно использовать нижеприведённый вариант, указав, естественно, свою рабочую книгу, рабочий лист, диапазон и формулу.
code: #vba
Private Sub getRangeWithFormulas() iMaskFormula$ = "=SUBTOTAL(*)" 'Здесь необходимо указать свой шаблон искомой формулы With ThisWorkbook.Worksheets(1).UsedRange Dim iCell As Range, iDiapazon As Range Set iCell = .Find( _ What:=iMaskFormula$, LookIn:=xlFormulas, LookAt:=xlWhole) If Not iCell Is Nothing Then iAddress$ = iCell.Address Set iDiapazon = iCell Do Set iCell = .FindNext(After:=iCell) Set iDiapazon = Union(iCell, iDiapazon) Loop While iCell.Address <> iAddress$ 'Здесь Вы можете работать с полученным диапазоном, 'который всегда будет содержать, как минимум, одну ячейку End If End With End Sub
Предполагается, что:
- ThisWorkbook - это текущая рабочая книга, т.е. книга в которой содержится выполняемый, в настоящий момент, код.
- Worksheets(1) - это первый рабочий лист указанной книги.
- UsedRange - это диапазон, в котором осуществляется поиск.
- "=SUBTOTAL(*)" - это текст искомой формулы, в моём примере, это стандартная функция рабочего листа =ПРОМЕЖУТОЧНЫЕ.ИТОГИ()
Поделиться: