Использование функции «Найти и заменить» для поиска ячеек с условным форматированием (Microsoft Excel)
Ричард пытается использовать функцию «Найти и заменить» для подсчета ячеек, отформатированных с использованием определенного цвета заливки. Это нормально работает, за исключением случаев, когда заливка является результатом условного форматирования. В этом случае функция «Найти и заменить» их не найдет. Однако по-прежнему можно фильтровать строки, содержащие условно отформатированные ячейки, на основе их цвета заливки. Ричард задается вопросом, почему, если Autofilter может обнаруживать любой из типов форматирования ячеек, Find and Replace не может найти эти ячейки.
Все, что может быть предложено в качестве «почему», конечно, было бы домыслом. (Я много раз задавался вопросом, почему Microsoft решила делать то, что они делали.) При этом имеет смысл закодировать «Найти и заменить», чтобы вы могли найти то, что можно заменить. Цвета заливки, отображаемые в результате условного форматирования, являются всего лишь цветом отображения, а не реальным цветом заливки. Цвета дисплея не могут быть заменены, поэтому они не могут быть найдены.
Однако вы можете использовать другой метод для отображения нужного количества — макрос. Следующий макрос просматривает все ячейки в определенном диапазоне, и если найдено совпадение с желаемым цветом, счетчик увеличивается. (Исследуется объект .DisplayFormat, поэтому он имеет цвет «как отображается», что означает, что он также соответствует тому, что может отображать условное форматирование.)
Sub CountCellColors() Dim Rng As Range Dim c As Range Dim Colr As Variant Dim J As Integer Dim sTemp As String Set Rng = Range("A1:Z500") 'Change as needed Colr = vbYellow 'Set color you want to count J = 0 sTemp = "" For Each c In Rng If c.DisplayFormat.Interior.Color = Colr Then J = J + 1 sTemp = sTemp & vbCr & " " & c.Address End If Next c Select Case J Case 0 sTemp = "There are no colored cells in the range." Case 1 sTemp = "There is 1 colored cell in the range:" _ & vbCr & sTemp Case Else sTemp = "There are " & J & " colored cells in the range:" _ & vbCr & sTemp End Select MsgBox sTemp End Sub
Когда макрос завершает работу, он отображает окно сообщения, в котором отображается количество совпадений цветов, а также адреса сопоставленных ячеек. Как написано, макрос проверяет ячейки A1: Z500 и ищет желтую заливку в ячейках. Обе строки, в которых установлены эти значения, можно изменить на то, что вам подходит.
_Примечание: _
Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.
link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (13742) применим к Microsoft Excel 2007, 2010, 2013, 2016, 2019 и Excel в Office 365.