繁体   English   中英

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

[英]Coloring a cell within a range, if the same cell within an identical range on a different worksheet is already colored?

在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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM