excel vba编译错误子或函数未定义

时间:2015-09-24 08:53:01

标签: excel vba

我正在运行一个简单的for循环,但我得到了错误:

  

编译错误:子或函数未定义

我在vba中创建了一个模块:

Option Explicit

Sub 100group()

Dim i As Integer, E As Integer
  E = 101
  For i = 2 To 37317
    If (cell(i, 1) < E) Then cell(i, 3) = E Else E = E + 100
    End If

  Next i

End Sub

1 个答案:

答案 0 :(得分:6)

  • cell(i, 1)应为Cells(i, 1)

  • 此外,sub / function.variable名称不能以数字开头。

  • 此外,您的If语句语法也很明确。

  • 最后,您会遇到进一步的错误,因为i被声明为Integer,只能保存最多32,768的值。所以你需要:

    Dim i As Long
    

由于Long数据类型最多可以保存2,147,483,647

总结一下,您应该使用:

Option Explicit

Sub group100()

Dim i As Long, E As Long
  E = 101
  For i = 2 To 37317
      If (Cells(i, 1) < E) Then
          Cells(i, 3) = E 
      Else 
          E = E + 100
      End If
  Next i

End Sub