VBA Excel - Как сделать заливку по ячейкам в расширяющемся диапазоне по определенным условиям?
Здравствуйте, коллеги!
Подскажите пожалуйста: у меня есть макрос, который расширяет количество строк каждый раз на неопределенное значение, то есть диапазон меняется всегда по строкам. И мне нужно закрашивать пустые ячейки, либо ячейки, в которых не содержится текстовой & буквенной информации (символы).Как это можно реализовать?
Пробовал через isEmpty и isNumeric, но никак не соображу, как можно это сделать в расширяющемся диапазоне по строкам. Может есть какие-то функции, благодаря которым VBA может обновлять кол-во заполненных строк?Заранее благодарю!!!
P.S. Пытался здесь посчитать через сложение последних строк в каждом листе
'kolvo_strok = 0
'With shd
'lRw1 = shd.Cells(rsh.Rows.Count, 1).End(xlUp).Row
'kolvo_strok = kolvo_strok + lRw1
'End With
'MsgBox kolvo_strok
Ответы (1 шт):
Автор решения: Akina
→ Ссылка
Private Sub Worksheet_Change(ByVal Target As Range)
Dim sh As Worksheet
Set sh = ThisWorkbook.Worksheets("Лист1")
sh.Cells.FormatConditions.Delete
With sh.UsedRange
.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, _
Formula1:="="""""
.FormatConditions(.FormatConditions.Count).SetFirstPriority
With .FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 255
.TintAndShade = 0
End With
.FormatConditions(1).StopIfTrue = False
End With
End Sub
Добавление ячеек в диапазон приводит к пересозданию правила и окрашиванию пустых ячеек во всём использованном диапазоне. Если надо не во всём - поправьте, и вместо With sh.UsedRange используйте задание в требуемом Range.
