2014-04-24 57 views
0

我是新来的,想学习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 
+1

我只是复制并粘贴您的代码到我的VBA和它的工作....这可能是在其他地方一边形成这个代码 –

+1

你的代码编译为我跑的罚款。 – RubberDuck

+0

您使用的是非英文版吗?另外,除非出现复制粘贴错误,否则应在整个模块中使“FilmName”保持一致。 – Sam

回答

2

它有可能使两种不同的方式你的代码失败:

  1. 将在D10
  2. 将一个非常大的值在D10文本值

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

1

我知道这是前一段时间提出的,但是当我在工作表中创建子名称与工作表名称相同时,我得到了相同的错误。

不幸的是,当这种情况发生时,没有错误被编译强调;该错误仅在运行时出现。此外,违规行不突出显示,这使得它有点难以找到。

更改子名称可以解决它。

4

当一个Sub被称为变量相同时(即在一个Sub中,你有for循环与迭代器“a”,而另一个Sub被称为“a”)时,也会发生此错误。

这给出了一个与您的描述相符的错误。

问候