我在excel中设置了一个VBA程序,当给定行中的几个单元格的条件彼此相等时,它将突出显示一行中的单元格。 (参见下面的代码)调试器上没有出现错误,指定的单元格也没有突出显示。
在下面的示例数据中,程序将突出显示案例1行(自1 = 1)和(10 = 10)的单元格。关于如何使这个工作的任何建议?
Sub x()
Dim r As Integer
Dim c As Integer
With Worksheets(1)
For r = 1 To .Range("B" & Rows.Count).End(xlUp).row
c = .Cells(r, Columns.Count).End(xlToLeft).Column
If Cells(r, 3).Value = Cells(r, 6).Value & Cells(r, 4).Value = Cells(r, 7).Value Then
Cells(r, 13).Interior.ColorIndex = 46
Application.ScreenUpdating = True
End If
Next r
End With
End Sub
示例数据:
Case_1 HT 1 10 STD 1 10 0.008893 0.02564 71 0.35 0.7297
Case_2 HT 1 10 HT 1 15 -0.04434 0.02564 71 -1.73 0.0881
Case_3 HT 1 10 STD 1 15 0.008893 0.02564 71 0.35 0.7297
答案 0 :(得分:0)
以上所有评论都很好,但我想我会把它们放在一起
你需要改变“&”到“和”。
去掉; “Dim c”行,“c = Cells”行和“Application.ScreenUpdating”行
我正在运行Excel 2010;您的代码使用上述更改,使用“If”语句中的“.Cells”或“Cells”
我还从每个Cell引用中删除了“.Value”,它可以使用或不使用它。
Dim r As Integer
'Dim c As Integer
With Worksheets(1)
For r = 1 To Range("B" & Rows.Count).End(xlUp).Row
'c = Cells(r, Columns.Count).End(xlToLeft).Column
If Cells(r, 3) = Cells(r, 6) And Cells(r, 4) = Cells(r, 7) Then
Cells(r, 13).Interior.ColorIndex = 46
'Application.ScreenUpdating = True
End If
Next r
End With