使用vba代码进行分级

我正在尝试使用vba来为课程分级,这里是我的代码和信息。

3条件,如果等级为100或以上,则显示100+,如果是50或以上,则显示50+。 否则,它会显示在50以下。我试图在sheet2中创build一个button,所以当我按下它时,代码将在sheet1中运行。 范围每个月会有所不同,所以这就是为什么我试图循环到A列的最后一行。我也向你展示了我试图产生的结果的快照。 我的问题是当我运行的代码,它有一个错误,否则没有如果。 需要一个build议或build议。

Sub Macro1() Dim I As Integer Dim lr As Integer Set ws = Worksheets("Sheet1") ws.Activate lr = Range("A" & Rows.Count).End(xlUp).Row For I = 2 To lr If Cells(I, 1).Value >= 100 Then Cells(I, 2).Value = "100+" ElseIf Cells(I, 2).Value >= 50 Then Cells(I, 22).Value = "50+" Else: Cells(I, 2).Value = "Below 50" End If Next I End Sub 

在这里输入图像说明

谢谢,

您已将If语句写成in-inline If由于要运行的代码与Then语句在同一行上。 要使用ElseElse如果您需要以不同的方式进行格式化。 尝试这个:

 If Cells(I, 1).Value >= 100 Then Cells(I, 2).Value = "100+" ElseIf Cells(I, 2).Value >= 50 Then Cells(I, 22).Value = "50+" Else Cells(I, 2).Value = "Below 50" End If 

这将解决你的第一个错误“ 否则如果


就我个人而言,我喜欢使用Select Case作为这种逻辑。

 Select Case Cells(I, 1).Value Case Is >= 100 Cells(I, 2).Value = "100+" Case Is >= 50 Cells(I, 22).Value = "50+" Case Else Cells(I, 2).Value = "Below 50" End Select