条件单元格填充代码应用于多行,每行具有不同的条件



我正在尝试使用VBA编写条件单元格填充代码,但我有一些语法问题。我意识到有一个选项卡,但我需要将代码应用到几个不同的行,每行有不同的条件,这样代码就会更快,为我的目的。我对VBA很陌生,但我想我至少得到了正确的逻辑。

基本上有一个包含值的先导列,后面列中的每个值都需要测试。

(TEST VALUE) | (VALUE TO BE TESTED)| (VALUE TO BE TESTED)...
(TEST VALUE) | (VALUE TO BE TESTED)| (VALUE TO BE TESTED)...

如果该值大于或小于测试值3个单位,则该单元格需要变为红色,否则需要变为绿色。

这是我所做的。我使用了一个按钮宏,但如果有一种方法可以自动做到这一点,没有一个按钮,那将是最好的。

我一直得到运行时错误"1004";第5行应用程序或对象定义的错误。基本上我用的是一组嵌套的for循环。第一个循环选择该行并为该行选择测试值。也许我分配变量错误,或者我需要选择我正在工作的工作表?循环的下一部分测试每行中的以下值,以查看它们是在测试值的指定范围内还是之外。最后,该单元格根据此测定结果着色。

代码:

Private Sub CommandButton21_Click()
Dim i As Integer, j As Integer, T As Integer, R As Integer
'T is the cell we want to test, R is the Integer we want to use to test T
For i = 6 To 132
R = Cells(6, j).Value
For j = 4 To 1000 'loop through each column to test each cell (move to the right down selected row)
  T = Cells(i, j).Value 'test each cell
  If T < (R - 3) Or T > (R + 3) Then
    Cells(i, j).Interior.ColorIndex = 4
Else
    Cells(i, j).Interior.ColorInex = 3
End If
Next j
Next i
End Sub

我也尝试使用单元格公式编辑器来应用此代码,但我不相信你可以这样改变单元格颜色:

"=IF(OR(D6<$C$6-3,D6>$C$6+3),"CHANGE COLOR TO RED","CHANGE COLOR TO GREEN""

将以下行下移一行(这是在为J赋值之前):

R = Cells(6, j).Value

这个不需要使用vba。只需使用条件格式。在选项卡上,假设你使用的是excel 2007或更高版本,进入home选项卡并选择条件格式。从选项中选择一些内容,或者可以选择新规则。从弹出框中选择"使用公式来确定要格式化的单元格"。输入公式,如"=if($a$3<=a4+3,TRUE,False)",然后选择所需的格式。

相关内容

  • 没有找到相关文章

最新更新