如果已经在不同工作表上的相同范围内的相同单元格已经着色,则可以为一个范围内的单元格着色?

时间:2019-02-07 21:17:59

标签: excel vba

在VBA中,我将结果标记在一定范围内,并根据单元格值(例如,值<“ 28”)将它们涂成绿色。每张纸(总共四张)对应于一个不同的标记,并根据一个值标记为绿色。所有工作表都具有相同的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("Sheet 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

1 个答案:

答案 0 :(得分:1)

这段代码为我完成了工作。让我知道它是否为您带来了预期的结果。

Option Explicit

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