2016-02-22 12 views
0

Я не могу понять эту проблему. Раньше у меня была аналогичная проблема, оказалось, что я использовал диапазон одной ячейки, который был избыточным. Но в этом случае мне нужен End (xlDown), и я не могу заставить его работать. Я попробовал несколько комбинаций, и я не могу понять правильный синтаксис. Помогите?Excel VBA: Ошибка выполнения 424, требуется объект

Public Exceptions As Range 
Public Xcept As Range 

Sub Example() 
Static ExcSh As Worksheet 
Set ExcSh = Worksheets("ComboExceptions") 
Set Exceptions = ExcSh.Range("A2") 

Set Xcept = ExcSh.Range(Exceptions.Offset(1).Cells, Exceptions.Offset(1).Cells.End(xlDown)) 
'This is where the error happens^
End Sub 
+2

Удалите два экземпляра '.Cells' – Rory

+1

Есть причина, вы просто не начать в А3 вместо А2, то' .offset (1) '? – Jeeped

+0

Есть, очень хорошая причина, да. В любом случае, я решил это. Отправьте ответ прямо сейчас. –

ответ

0

Решено! Я объявил

Static ExcSh As Worksheet 

в другом Sub, что делает его недоступным для функции, которая была ошибочной. Я сделал это публичное и теперь следующая команда работает отлично:

Set Xcept = ExcSh.Range(Exceptions.Offset(1), Exceptions.Offset(1).End(xlDown)) 
+0

В соответствии с комментариями @Jeeped выше 'Set Xcept = ExcSh.Range (Исключения, Исключения.Еnd (xlDown))' также будет достаточным, если вы адаптируете исходную точку. – Ralph

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