Excel 如果不同工作表上相同范围内的同一单元格已着色,则为该范围内的单元格着色?
在VBA中,我标记某个范围内的结果,并根据单元格值(例如值<“28”)将其着色为绿色。每张图纸(共四张)对应于不同的标记,并根据值标记为绿色。所有板材都具有相同的X轴和Y轴,板材之间的关注范围相同(B2:BJ26)。我想做第五张,如果其他表格中的其他四个对应单元格都是绿色的,则将相应单元格涂成绿色 我可以一个细胞一个细胞地做 简化示例Excel 如果不同工作表上相同范围内的同一单元格已着色,则为该范围内的单元格着色?,excel,vba,Excel,Vba,在VBA中,我标记某个范围内的结果,并根据单元格值(例如值
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)
如果图纸(A)“B2”值<30,图纸(B)“B2”值>1.1,图纸(C)“B2”值<1500,图纸(D)“B2”值>0.30,则图纸(E)“B2”内饰颜色=RGB(0255,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”)。激活
尺寸XXXXXXX作为范围,单元格作为范围
设置XXXXXXX=范围(“B2:BJ26”)
对于XXXXXXX中的每个单元格
如果单元格数值<“28”和单元格数值>“1”,则
cell.Interior.Color=RGB(0,255,0)
如果结束
下一个
这段代码帮我完成了任务。让我知道它是否给了你预期的结果
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
选项显式
第五分节()
作为整数的Dim i
将m作为整数
作为整数的Dim n
Dim allGreen作为布尔值
对于m=2到26
对于n=2到62
全绿=真
对于i=1到4
如果纸张(i).单元格(m,n).Interior.Color RGB(0,255,0),则
全绿=假
如果结束
接下来我
如果是绿色的话
表(5).单元格(m,n).Interior.Color=RGB(0,255,0)
如果结束
下一个
下一个m
MsgBox“颜色检查完成!”
端接头
当发现非绿色时,您可以通过退出for循环来稍微缩短它。我考虑过这一点,但宏在测试时运行得太快,节省的时间几乎不值得在键盘上敲击它。出于某种原因,此代码对我不起作用。代码运行正常,但指定范围内的单元格均为绿色。@JakeKurdys,您需要根据前四页中的内容设置RBG值。目前它被设置为纯绿色(RGB(0255,0)),但这可能不是您的单元格中的绿色。