编译错误预期函数或变量

时间:2014-04-24 16:41:48

标签: excel vba excel-vba

我是新手,并试图学习VBA。当我输入代码时,我得到编译错误预期函数或变量。

关于activecell的内容,但无法弄清楚。

Sub Testare()
    Dim FilmName As String
    Dim FilmLenght As Integer
    Dim FilmDescription As String

    Range("b10").Select
    FilmName = ActiveCell.Value
    FilmLenght = ActiveCell.Offset(0, 2).Value

    If FilmLenght < 100 Then
       FilmDescription = "Interesant"
    Else
       FilmDescription = "Suficient"
    End If

    MsgBox FilmName & " is " & FilmDescription
End Sub

4 个答案:

答案 0 :(得分:4)

当一个Sub被称为与变量相同时也会发生这种错误(例如,在一个Sub中,你使用迭代器进行循环&#34; a&#34;,而另一个Sub被称为&#34; a&#34;)

这会产生适合您描述的错误。

此致

答案 1 :(得分:2)

可以通过两种不同的方式使代码失败:

  1. D10
  2. 中放置一个非常大的值
  3. D10
  4. 中放置文字值

    这将导致溢出错误或类型不匹配错误。

答案 2 :(得分:2)

我知道这是前一段时间被问过的,但是当我在工作表中创建一个子名称与工作表名称相同时,我最终得到了同样的错误。

不幸的是,当发生这种情况时,编译不会突出显示错误;该错误仅在运行时出现。此外,违规行未突出显示,这使得查找有点困难。

更改子名称解决了它。

答案 3 :(得分:0)

这是导致我这个错误的原因:

在我即将开始编写的新公共函数中,我开始键入一条语句,但是需要从另一个位置复制一个长的varname,因此我只是插入了字母a以防止Excel弹出-烦人的Compile Error: Expected Expression对话框。所以我有这个:

myVarName = a

然后,我尝试逐步完成代码以达到这一点,并且当Excel输入该功能时,我收到了消息"Compile Error: Expected Function Or Variable"。要解决,我只是将占位符更改为数字:

myVarName = 1

一切都很好。