仅在.Value中识别第一个数字的代码

我有下面的代码,除了一个问题。 它识别H列中的值,并突出显示该行H列中不包含40或更大数字的行。 但是,下面的代码实际上是查找第一个数字为4或者更大,突出显示以数字1,2或作为列H中的第一个数字开始的任何行。因此,突出显示列H值是100。

Sub color40() Sheets("40+").Select Lastrow = Cells(Rows.Count, 1).End(xlUp).Row For i = 2 To Lastrow If Worksheets("40+").Cells(i, 8).Value < "40" Then Range(Cells(i, 2), Cells(i, 8)).Interior.color = RGB(160, 140, 150) End If Next i End Sub 

“40”是文字,40是数字。 当你用引号包装数字时,它不会正常计算数字,它会将它们评估为string。 尝试这个:

 Sub color40() Sheets("40+").Select Lastrow = Cells(Rows.Count, 1).End(xlUp).Row For i = 2 To Lastrow If Cells(i, 8).Value < 40 Then Range(Cells(i, 2), Cells(i, 8)).Interior.color = RGB(160, 140, 150) End If Next i End Sub 

如果您只需要评估1位数字,您可以使用LEFTfunction。

句法:

 LEFT( text, [number_of_characters] ) 

例:

 If LEFT(Worksheets("40+").Cells(i, 8).Value, 1) < 4 Then Range(Cells(i, 2), Cells(i, 8)).Interior.color = RGB(160, 140, 150) End If 

记住要改变你需要评估的值。