VBA Excel以突出显示另一个工作表上的范围

很久以来,在这里,我终于被难住了,试图编写一些VBA,从另一个工作表上的列B到S高亮显示,在S列中S的值大于另一个工作表上的H10的所有行。 此代码正常工作:

Dim i As Long For i = 2 To Rows.Count If Worksheets("Initial Data").Cells(i, 19).Value > Worksheets("Inputs").Range("H10").Value Then Worksheets("Initial Data").Cells(i, 19).Interior.ColorIndex = 4 End If Next i Worksheets("Initial Data").Activate 

这将突出显示S列中所需的每个单元格。 我想要做的就是突出显示从B到S的单元格,如下所示:

 Dim i As Long For i = 2 To Rows.Count If Worksheets("Initial Data").Cells(i, 19).Value > Worksheets("Inputs").Range("H10").Value Then Worksheets("Initial Data").Range(.Cells(i, 2), .Cells(i, 19)).Interior.ColorIndex = 2 End If Next i Worksheets("Initial Data").Activate 

…但它不工作,我得到一个运行时错误。 这是如此令人沮丧,因为我已经完成了大部分困难的事情!

哦,在任何人build议有条件格式化之前,子读取的数据每次都是新鲜的粘贴,所以这是一个否定的。 感谢您的任何意见!

尝试删除点之前.Cells(i, 2)不知道你是什么意思的细胞

Worksheets("Initial Data").Range(.Cells(i, 2), .Cells(i, 19)).Interior.ColorIndex = 2Worksheets("Initial Data").Range(Cells(i, 2), Cells(i, 19)).Interior.ColorIndex = 2

或者使用With – > msdn :

 With Worksheets("Initial Data") .Range(.Cells(i, 2), .Cells(i, 19)).Interior.ColorIndex = 4 End With