2017-02-27 251 views
-3

我想写一个宏代码,将做如下的单元格区域VBA条件格式细胞值大于或小于

  1. 条件格式将仅在细胞有申请已输入值
  2. 如果单元格中的值小于$ I $ 6和/或大于$ M $ 6,则突出显示红色,如果不是,请不要突出显示(或不应用)。

这是作为一个规格检查输入的数据,以确保数字在规格范围内。谢谢!

我试了一下:

Sub SpecCheck() 
    Dim iRow As Range 
    Set iRow = Range("f16:l34") 

    For Each cell In iRow 
     If cell.Value <> "" And cell.Value > "I6" And cell.Value < "M6" Then 
      cell.Interior.Color = RGB(255, 0, 0) 
     End If 
    Next 
End Sub 

新的代码我试过了,没有工作。也不确定是否有问题,但代码是用工作表的“常规”代码编写的。

Sub SpecCheck() 

Dim iRow As Range, cell As Range 
Dim lowSpec As Range 
Dim highSpec As Range 
Set iRow = Range("f16:l34") 
Set lowSpec = Range("r6") 
Set highSpec = Range("s6") 

For Each cell In iRow 
If cell.Value <> "" And cell.Value > highSpec And cell.Value < lowSpec Then 
    cell.Interior.Color = RGB(255, 0, 0) 
End If 
Next 

End Sub 
+0

**'我想编写一个宏code' ** ......好了,这是怎么回事...? SO不是**'“为我的网站编写代码”**。告诉我们你到目前为止试过的东西以及你卡在哪里。 – ManishChristian

+0

子SpecCheck() 昏暗iRow作为范围设定 = iRow范围( “F16:1-34”) 针对每个小区在iRow 如果cell.Value <> “” 而cell.Value> “I6” 和细胞。值<“M6”Then cell.Interior.Color = RGB(255,0,0) End If Next End Sub –

回答

1

你需要指定那些范围,而不是字符串:

Sub SpecCheck() 
Dim iRow As Range, cell as Range ' I also added the cell as Range 
Set iRow = Range("f16:l34") 

For Each cell In iRow 
    If cell.Value <> "" And cell.Value > Range("$I$6").Value And cell.Value < Range("$M$6").Value Then 
     cell.Interior.Color = RGB(255, 0, 0) 
    End If 
Next 
End Sub 
+0

合并单元格是否会影响代码?我的两个范围是在一个合并单元格... –

+0

@ Sid.T。 - 是的,它会。你能发布一个快速截图吗?您必须取消合并,并确保两个单元格都有数据。通常最好避免合并的单元格,并且只使用格式来使它们看起来合并,IMO。你能澄清吗? '$ I $ 6'就像'Value is 123',你只需要检查'123'? – BruceWayne

+0

只是为了检查它是否是合并的单元格,我将单元格范围更改为r6和s6。我想检查的值是低于299,如果高于311.Private Sub SpecCheck() Dim iRow As Range,cell As Range'我还添加了单元格作为范围 Dim lowSpec As Range Dim highSpec As Range 集iRow =范围( “F16:1-34”) 集lowSpec =范围( “R6”) 集highSpec =范围( “S6”) 针对每个小区在iRow 如果cell.Value <> “” 和细胞.value的> highSpec而cell.Value