Ячейки на листе могут содержать значения или формулы. В какой-то момент вы можете каким-то образом выделить все ячейки на листе, содержащие формулы, раскрасив эти ячейки. Есть несколько способов решить эту проблему. Если у вас нет необходимости делать выделение так часто, лучше всего подойдет ручной подход.

Выполните следующие действия:

  1. Нажмите F5 или Ctrl + G. Excel отображает диалоговое окно «Перейти».

  2. Щелкните Special. Excel отображает диалоговое окно «Перейти к специальному». (См. Рис. 1.)

  3. Установите переключатель «Формулы».

  4. Щелкните ОК.

На этом этапе каждая ячейка на листе, содержащая формулы, выбрана, и вы можете добавить цвет к этим ячейкам или отформатировать их по своему желанию. При желании этот подход можно автоматизировать с помощью следующего макроса:

Sub ColorFormulas()

ActiveSheet.Cells.SpecialCells(xlCellTypeFormulas, 23).Select     With Selection.Interior         .ColorIndex = 6         .Pattern = xlSolid     End With End Sub

Вы можете запускать этот макрос столько раз, сколько необходимо, чтобы выделить различные ячейки, содержащие формулы. Единственная проблема заключается в том, что если формула удаляется из ячейки, которая была ранее выделена, выделение остается; он не удаляется автоматически. В этом случае требуется другой макро-подход. Этот макрос действует в диапазоне ячеек, которые вы выбираете перед запуском макроса.

Sub ColorFunction()

For Each cell In Selection         If cell.HasFormula Then             With cell.Interior                 .ColorIndex = 6                 .Pattern = xlSolid             End With         Else             cell.Interior.ColorIndex = xlNone         End If     Next cell End Sub

Макрос проверяет каждую ячейку в диапазоне. Если ячейка содержит формулу, она выделяется. Если в ячейке нет формулы, то выделение отключается.

Другое потенциальное решение — использовать определяемую пользователем функцию вместе с возможностями условного форматирования Excel. Создайте в редакторе VBA следующую функцию:

Function CellHasFormula(c As Range) As Boolean     CellHasFormula = c.HasFormula End Function

Имея эту функцию, вы можете использовать возможности условного форматирования Excel (подробно описанные в других разделах ExcelTips), чтобы проверить, что возвращает формула. Другими словами, вы должны установить условный формат, который проверяет результат этой формулы:

=CellHasFormula(A1)

Если результат верен (ячейка содержит формулу), то применяется ваш условный формат.

Интересно отметить, что вам не нужно создавать макрос VBA для использования маршрута условного форматирования, если вы этого не хотите. (У некоторых людей есть естественное отвращение к использованию макросов.) Вместо этого вы можете выполнить следующие действия:

  1. Нажмите Ctrl + F3. Excel отображает диалоговое окно «Определить имя».

  2. В поле «Имена» (вверху диалогового окна) введите имя, например FormulaInCell.

  3. В поле «Ссылается на» (внизу диалогового окна) введите следующее:

  4. Щелкните ОК.

Теперь вы можете следовать ранее описанным методам настройки условного форматирования. Единственное отличие состоит в том, что условный формат должен проверять вместо этого следующую формулу:

=FormulaInCell

_Примечание: _

Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.

link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

ExcelTips — ваш источник экономичного обучения Microsoft Excel.

Этот совет (2766) применим к Microsoft Excel 97, 2000, 2002 и 2003.