В VBA я отмечаю результаты в пределах диапазона и окрашиваю их в зеленый цвет на основе значения ячейки (например, значение <"28"). </p>
Каждый лист (всего четыре) соответствует отдельному маркеру ипомечен зеленым цветом в зависимости от значения.Все листы имеют одинаковую ось X и Y с диапазоном интереса (B2: BJ26).
Я хотел бы сделать пятый лист, который окрашивает соответствующую ячейку в зеленый цвет, если все четыре соответствующие ячейки издругие листы окрашены в зеленый цвет.
Я мог бы сделать эту ячейку за ячейкой.
Упрощенный пример
If Sheets(A) "B2" value < 30 AND Sheets(B) "B2" Value > 1.1 AND
Sheets(C) "B2" Value < 1500 AND Sheets(D) "B2" Value > 0.30 THEN
Sheets(E) "B2" interior.color = RGB(0,255,0)
Должен быть более эффективный способ для всех ячеек в B2: Диапазон BJ26.
Пример рабочего кода для задания значений цвета / флага на первых четырех листах.
Worksheets("1").Activate
Dim XXXXXXX As Range, cell As Range
Set XXXXXXX = Range("B2:BJ26")
For Each cell In XXXXXXX
If cell.Value < "28" And cell.Value > "1" Then
cell.Interior.Color = RGB(0, 255, 0)
End If
Next
Предлагаемый следующий код не окрашивает ничего на листе 5
Sub ColorSheetFive()
Dim i As Integer
Dim m As Integer
Dim n As Integer
Dim allGreen As Boolean
For m = 2 To 26
For n = 2 To 62
allGreen = True
For i = 1 To 4
If Sheets(i).Cells(m, n).Interior.Color <> RGB(0, 255, 0) Then
allGreen = False
End If
Next i
If allGreen Then
Sheets(5).Cells(m, n).Interior.Color = RGB(0, 255, 0)
End If
Next n
Next m
MsgBox "Color checking complete!"
End Sub