我正在尝试使用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)",然后选择所需的格式。