2014-04-24 4 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

Я знаю, что это было задано некоторое время назад, но я закончил с той же ошибкой, когда я создал Sub в листе с Sub Name так же, как имя Worksheet.

К сожалению, когда это происходит, ошибка не подсчитывается компиляцией; ошибка появляется только во время выполнения. Кроме того, строка нарушения не подсвечена, что затрудняет ее поиск.

Изменение подзадача решает его.

4

Эта ошибка возникает также, когда Sub вызывается так же, как и переменная (т. Е. В одном Sub у вас есть цикл с итератором «a», в то время как другой Sub называется «a»).

Это приводит к ошибке, которая соответствует вашему описанию.

С уважением

Смежные вопросы