我试图突出显示第3,9,12行中小于0.05的黄色单元格以及所选单元格上方和下方的单元格。有谁有任何想法?真的很感激!
我试过这段代码并且它有效但是有更有效的方法吗?即循环列而不是键入B,C,D ......等
Private Sub CommandButton1_Click() Dim i As Long
对于i = 3到16步骤3
If Range("B" & i).Value < 0.5 Then Range("B" & i).Interior.ColorIndex = 6
If Range("B" & i).Value < 0.5 Then Range("B" & i).Offset(-1, 0).Interior.ColorIndex = 6
If Range("B" & i).Value < 0.5 Then Range("B" & i).Offset(1, 0).Interior.ColorIndex = 6
If Range("C" & i).Value < 0.5 Then Range("C" & i).Interior.ColorIndex = 6
If Range("C" & i).Value < 0.5 Then Range("C" & i).Offset(-1, 0).Interior.ColorIndex = 6
If Range("C" & i).Value < 0.5 Then Range("C" & i).Offset(1, 0).Interior.ColorIndex = 6
Next i
End Sub
答案 0 :(得分:0)
请查看Conditional Formatting in Excel,它基本上可以帮助您为需要提供某种自定义条件的单元格着色(在您的情况下选择第3,9和12行并应用条件)。 要为上面的单元格着色(例如),检查单元格“低于上面”(当前单元格)是否小于0.05
答案 1 :(得分:0)
你在外圈的正确轨道上,可以像你问的那样在列中添加一个循环,我将在下面演示。我将每个循环迭代的三个if语句压缩为一个,并添加了一个else条件,以便在不符合条件时清除旧颜色。显然,将工作表名称更改为您需要的任何名称。最好创建一个工作表引用,从而使用ws.Range而不仅仅是Range。它有助于确保Excel正在处理您认为正在处理的工作表。这至少应该让你接近。
Public Sub CommandButton1_Click()
Dim row As Integer, col As Integer
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("Sheet4")
For row = 3 To 15 Step 3
For col = 2 To ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column
If ws.Cells(row, col).Value < 0.5 And ws.Cells(row, col).Value <> "" Then
ws.Range(Cells(row - 1, col), Cells(row + 1, col)).Interior.ColorIndex = 6
Else
ws.Range(Cells(row - 1, col), Cells(row + 1, col)).Interior.ColorIndex = xlNoFill
End If
Next col
Next row
End Sub