2015-11-30 2 views
1

Я пытаюсь написать макрокод, который на основе ввода ячейки перемещается на один из двух листов (сервис или событие). Я получаю ошибку как «Требуемый объект»Я получаю ошибку - Требуется объект

Любая помощь для решения этой проблемы будет оценена.

Sub GoSheetNext() 

     Dim abcd As Integer 
     abcd = ActiveWorksheet.Cells(4, 2).Value 
     If abcd > 10 Then 
      Sheets("service").Select 
      ElseIf abcd < 10 Then 
      Sheets("event").Select 

     End If 

End Sub 
+0

В какой строке происходит ошибка? –

+1

Что произойдет, если abcd = 10? Где ошибка? Вы пробовали .activate? –

+0

abcd никогда не будет 10. –

ответ

2

Это просто, что ActiveWorksheet не существует, то ActiveSheet:

Как отметил @John Coleman, вы должны добавить Option Explicit в верхней части модуля, он будет толькосила вы должны объявить все свои переменные, прежде чем сможете запустить код. Поэтому он обнаружит вашу проблему здесь, потому что он не узнал бы ActiveWorksheet! ;)

Sub GoSheetNext() 
Dim Test_Value As Integer 
Test_Value = ActiveSheet.Cells(4, 2).Value 

If Test_Value > 10 Then 
    Sheets("service").Select 
ElseIf Test_Value < 10 Then 
    Sheets("event").Select 
End If 

End Sub 
+2

Хороший ответ. Может быть, не помешает упомянуть, что «Option Explicit» выдавал ошибку «Variable Not Defined», выделяя «ActiveWorksheet» - что может быть проще отладить –

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