Подсчет затененных ячеек (Microsoft Excel)
Excel позволяет применять к ячейкам в книге все виды форматирования. Одна из вещей, которую вы можете сделать, — это «затенять» ячейки, используя узор или цвет. (Вы делаете это на вкладке «Шаблоны» диалогового окна «Формат ячеек».) В какой-то момент вы можете захотеть узнать, сколько ячеек в диапазоне закрашено.
В Excel нет формулы рабочего листа, которая позволяла бы подсчитывать затененные ячейки. Вместо этого вы должны разработать свой собственный макрос для этого. Следующий макрос — это пример решения этой проблемы. Он подсчитывает количество затененных ячеек в диапазоне от A1 до J20 и помещает счет в ячейку A1.
Sub CountColor() Dim irow, icol As Integer Cells(1, 1) = 0 For irow = 1 To 20 For icol = 1 To 10 If Cells(irow, icol).Interior.ColorIndex _ <> xlColorIndexNone Then Cells(1, 1) = Cells(1, 1) + 1 End If Next icol Next irow End Sub
Обратите внимание, что в основе процедуры лежит сравнение ColorIndex каждой ячейки и предварительно определенной константы xlColorIndexNone. Если они не равны, значит, ячейка каким-то образом закрашена.
Эту же базовую технику можно легко адаптировать к пользовательской функции.
Обратите внимание на то, что такое же сравнение выполняется для каждой ячейки:
Function FindShades(a As Range) As Integer FindShades = 0 For Each c In a If c.Interior.ColorIndex <> xlColorIndexNone Then FindShades = FindShades + 1 End If Next c End Function
Чтобы использовать эту функцию, просто используйте ее в ячейке как формулу и укажите диапазон в формуле:
= FindShades(B7:E52)
_Примечание: _
Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.
link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (2059) применим к Microsoft Excel 97, 2000, 2002 и 2003.