如何将macros应用于所有行?

我有以下代码,它的工作原理是列中的第一个值,但是我需要修改代码,以便将if语句应用于列中的所有值。 现在它是把结果作为40 +列中的所有值,但我需要代码运行,以便它首先评估K2,然后K3,然后K4等请帮助!

Sub UPTRange() Dim UPT As Range, cell As Range, result As Range Set UPT = Range("K2:K2642") Set result = Range("L2:L2642") For Each cell In UPT If cell.Value >= 40 Then result = "40 +" ElseIf cell.Value = (30 <= 39) Then result = "30 - 39" ElseIf cell.Value = (20 <= 29) Then result = "20 - 29" ElseIf cell.Value = (10 <= 19) Then result = "10 - 19" ElseIf cell.Value = (2 <= 9) Then result = "2 - 9" ElseIf cell.Value = (0 <= 1) Then result = "0 - 1" Else: cell.Value = "Error" End If Next For Each cell In result Range("L2").Value = result Next End Sub 

 If cell.Value = (30 <= 39) Then 

是相同的

 If cell.Value = True Then 

因为你正在评估30 <= 39的expression式,它给出了True

如果你想检查范围,那么你应该使用类似的东西

 If cell.Value > 30 And cell.Value <= 39 Then 

一旦你有result的价值,然后只是这样做:

 cell.offset(0, 1).Value = result 

result放置在单元格的右侧

编辑

 Sub UPTRange() Dim UPT As Range, cell As Range, result, v Set UPT = ActiveSheet.Range("K2:K2642") For Each cell In UPT v=cell.value If v >= 40 Then result = "40 +" ElseIf v > 30 And v <= 39) Then result = "30 - 39" ElseIf 'etc etc Else result = "Error" End If cell.Offset(0, 1).Value = result Next End Sub 

也许这个?

 If cell.Value >= 40 Then cell.Formula = "40 +" ElseIf cell.Value >= 10 And cell.Value < 40 Then cell.Formula = (Int(cell.Value / 10) * 10) & " - " & (Int(cell.Value / 10) * 10) + 9 ElseIf cell.Value > 1 And cell.Value < 10 Then cell.Formula = "2 - 9" Else cell.Formula = "Error" End If