Excel 下一步是VBA

Excel 下一步是VBA,excel,for-loop,compiler-errors,next,vba,Excel,For Loop,Compiler Errors,Next,Vba,当我试着运行这段代码时,我总是得到一个“编译错误:下一步没有For”。然而,经过多次检查,我看不出它怎么会不识别他们的存在。这是我的第一个VBA代码,因此任何帮助都将不胜感激 Sub Naming() ' ' Naming Macro ' Assigns a category name in a cell based on values in a cell one column over ' Dim number As Double For i = 9 To 200 number

当我试着运行这段代码时,我总是得到一个“编译错误:下一步没有For”。然而,经过多次检查,我看不出它怎么会不识别他们的存在。这是我的第一个VBA代码,因此任何帮助都将不胜感激

Sub Naming()
'
' Naming Macro
' Assigns a category name in a cell based on values in a cell one column over 
'

Dim number As Double

For i = 9 To 200
    number = Cells(i, 3).Value
        If number = 0 Then
            GoTo Line1
        Else
            If number <= 199999 And number > 0 Then
            Cells(i, 2) = "EP-GEARING"
        Else    
            If number <= 399999 And number > 199999 Then
            Cells(i, 2) = "DRIVES"
        Else
            If number <= 499999 And number > 399999 Then
            Cells(i, 2) = "FLOW"
        Else
            If number <= 599999 And number > 499999 Then
            Cells(i, 2) = "SPARES"
        Else
            If number <= 699999 And number > 599999 Then
            Cells(i, 2) = "REPAIR"
        Else
            If number <= 799999 And number > 699999 Then
            Cells(i, 2) = "FS"
        Else
            If number <= 899999 Then
            Cells(i, 2) = "GC-GEARING"
        Else
            GoTo Line1
Line1:
        End If
Next i

End Sub
子命名()
'
'命名宏
'根据一列上单元格中的值在单元格中指定类别名称
'
双精度数字
对于i=9到200
数字=单元格(i,3)。数值
如果数字=0,则
后藤1号线
其他的
如果数字是0,那么
单元(i,2)=“EP-传动装置”
其他的
如果号码是199999,那么
单元(i,2)=“驱动器”
其他的
如果号码是399999,那么
单元(i,2)=“流动”
其他的
如果号码是499999,那么
单元(i,2)=“备用”
其他的
如果号码是599999,那么
单元(i,2)=“修复”
其他的
如果号码是699999,那么
单元(i,2)=“FS”
其他的

如果数字您的代码应该如下所示:

Sub Naming()
'
' Naming Macro
' Assigns a category name in a cell based on values in a cell one column over 
'

Dim number As Double

For i = 9 To 200
    number = Cells(i, 3).Value

    If number <= 199999 And number > 0 Then
        Cells(i, 2) = "EP-GEARING"
    ElseIf number <= 399999 And number > 199999 Then
        Cells(i, 2) = "DRIVES"
    ElseIf number <= 499999 And number > 399999 Then
        Cells(i, 2) = "FLOW"
    ElseIf number <= 599999 And number > 499999 Then
        Cells(i, 2) = "SPARES"
    ElseIf number <= 699999 And number > 599999 Then
        Cells(i, 2) = "REPAIR"
    ElseIf number <= 799999 And number > 699999 Then
        Cells(i, 2) = "FS"
    ElseIf number <= 899999 Then
        Cells(i, 2) = "GC-GEARING"
    End If

Next i

End Sub
子命名()
'
'命名宏
'根据一列上单元格中的值在单元格中指定类别名称
'
双精度数字
对于i=9到200
数字=单元格(i,3)。数值
如果数字是0,那么
单元(i,2)=“EP-传动装置”
艾尔塞夫电话199999
单元(i,2)=“驱动器”
艾尔塞夫号399999
单元(i,2)=“流动”
那么艾尔塞夫的电话号码是499999
单元(i,2)=“备用”
那么艾尔塞夫的电话号码是599999
单元(i,2)=“修复”
艾尔塞夫号699999
单元(i,2)=“FS”

ElseIf number您的代码应该如下所示:

Sub Naming()
'
' Naming Macro
' Assigns a category name in a cell based on values in a cell one column over 
'

Dim number As Double

For i = 9 To 200
    number = Cells(i, 3).Value

    If number <= 199999 And number > 0 Then
        Cells(i, 2) = "EP-GEARING"
    ElseIf number <= 399999 And number > 199999 Then
        Cells(i, 2) = "DRIVES"
    ElseIf number <= 499999 And number > 399999 Then
        Cells(i, 2) = "FLOW"
    ElseIf number <= 599999 And number > 499999 Then
        Cells(i, 2) = "SPARES"
    ElseIf number <= 699999 And number > 599999 Then
        Cells(i, 2) = "REPAIR"
    ElseIf number <= 799999 And number > 699999 Then
        Cells(i, 2) = "FS"
    ElseIf number <= 899999 Then
        Cells(i, 2) = "GC-GEARING"
    End If

Next i

End Sub
子命名()
'
'命名宏
'根据一列上单元格中的值在单元格中指定类别名称
'
双精度数字
对于i=9到200
数字=单元格(i,3)。数值
如果数字是0,那么
单元(i,2)=“EP-传动装置”
艾尔塞夫电话199999
单元(i,2)=“驱动器”
艾尔塞夫号399999
单元(i,2)=“流动”
那么艾尔塞夫的电话号码是499999
单元(i,2)=“备用”
那么艾尔塞夫的电话号码是599999
单元(i,2)=“修复”
艾尔塞夫号699999
单元(i,2)=“FS”

ElseIf number
ElseIf
是VB中的一个单词

If number = 0 Then
    'Do nothing
ElseIf number <= 199999 And number > 0 Then
    Cells(i, 2) = "EP-GEARING"
ElseIf number <= 399999 And number > 199999 Then
    ...
Else
    'Do nothing
End If

ElseIf
是VB中的一个单词

If number = 0 Then
    'Do nothing
ElseIf number <= 199999 And number > 0 Then
    Cells(i, 2) = "EP-GEARING"
ElseIf number <= 399999 And number > 199999 Then
    ...
Else
    'Do nothing
End If

其他答案说明了如何修复
If
语句,以便VBA能够识别
For
Next
配对

现在,就我个人而言,如果需要循环,我建议使用GSerg指出的
Select Case


但我可能会这么做。在单元格
B9
中放置以下公式:
=IF(C9=0,”,IF(C9其他答案表明如何修复
IF
语句,以便VBA识别您的
进行
下一次配对

现在,就我个人而言,如果需要循环,我建议使用GSerg指出的
Select Case


但我可能会这样做。在单元格
B9
中放置以下公式:
=IF(C9=0,“,IF(C9这样,所有条件都将始终被评估。
ElseIf
将在条件满足后立即停止评估。这样,所有条件都将始终被评估。
ElseIf
将在条件满足后立即停止评估。不要使用Goto。这是不必要的。不要使用Goto。这是不必要的。