Я пытаюсь написать код для Excel в VBA, который просматривает диапазон ячеек, в этом примере Range B4: B15, и сначала определяет, какие ячейки имеют желтый цвет FILL (цвет интерьера). Затем из ячеек желтого цвета в этом диапазоне он определяет, являются ли какие-либо из этих ячеек желтого цвета пустыми. Я хочу, чтобы он просматривал весь диапазон (B4: B15), и если ЛЮБОЙ из желтых ячеек пуст, он выдаст сообщение для всего диапазона, говорящее «есть пустые желтые ячейки».
Я знаю, что мне нужно использовать If Range.interior.color = 65535 Тогда, чтобы определить, какие ячейки желтые. Я знаю, что мне нужно использовать If WorksheetFunction.countA (range) = 0 Тогда, чтобы сказать, какие ячейки в диапазоне пустые. Моя проблема в том, что я не могу собрать все это вместе. Я использую Для каждого rcell в цикле r, чтобы определить, какие ячейки окрашены в желтый цвет, но затем мне нужен способ, чтобы код собирал информацию о том, какие из этих ячеек окрашены в желтый цвет, а затем ТОЛЬКО ИЗ ЭТИХ КЛЕТОК, скажите мнекакие из них пустые. Мне трудно понять, как создать новый «поддиапазон», в котором только ячейки окрашены в желтый цвет.
Это то, что я пробовал, но не могу собрать все это вместе.
Sub Input_Checker_test()
Dim ws As Worksheet
Set ws = Sheets("Main")
Dim r As Range
Dim rcell As Range
Dim rmain As Range
Dim rmaincell As Range
Set r = Range("B4:B15").Cells
For Each rcell In r
If rcell.Interior.Color = 65535 Then
rcell = rmain
End If
Next rcell
For Each rmaincell In rmain
If WorksheetFunction.CountA(rmain) = 0 Then
MsgBox ("Cells are empty")
Else
MsgBox ("Cells are full")
End If
Next rmaincell
End Sub
Я хочу, чтобы он просмотрел весь диапазон (B4: B15), и если ЛЮБОЙ из желтых ячеек в этом диапазоне не заполнен, он выдаст сообщение для всего диапазона, говорящее «есть желтые ячейки, которыепустые "