2014-10-14 10 views
0
Sub APnumbers() 
Dim Currentcell As Range 
ActiveWorkbook.Sheets(2).Activate 
Set Currentcell = ActiveSheet.Range("BA5").Activate 
End Sub 

Во второй последней строке я получаю сообщение об ошибке «Требуемый объект». Вы можете помочь?Объект, требуемый в vba при назначении диапазона

+0

Я не думаю, что вы можете использовать .Activate на диапазоне. Вы должны либо удалить его, либо изменить его. Выберите (если вы работаете в VBA, выбор диапазонов в значительной степени избыточен и занимает время обработки). – Dave

+1

Вам не нужен .Activate - на самом деле вам это очень редко нужно. См. Этот вопрос: https://stackoverflow.com/questions/10714251/how-to-avoid-using-select-in-excel-vba-macros – citizenkong

+1

'Set Currentcell = ActiveCell' или' Set Currentcell = Activesheet.Range (" BA5 ")' – ZAT

ответ

0

Как следует из комментариев Дейва и гражданина, вы можете сделать это по-другому без выбора и активации. Что-то вроде этого должно сделать трюк:

Sub APnumbers() 

    Dim Currentcell As Range 
    Dim ws as Worksheet: Set ws = ActiveWorkbook.Sheets(2) 

    Set Currentcell = ws.Range("BA5") 

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