2015-05-26 3 views
1

Я пытаюсь сохранить переменную в текущем открытом листе в VBA. До сих пор у меня естьОбъявление переменной активного рабочего листа в VBA

Dim Active As Worksheet 
Set Active = ActiveWorksheet 

По какой-то причине он дает мне ошибку в последней строке, указав требуемый объект. Мой код открывает новый рабочий лист с данными на активном листе, поэтому мне нужна переменная, которая удерживает мое место на текущем активном листе. Любая идея, почему это работает неправильно? Заранее спасибо!

+2

Хорошая привычка состоит в том, чтобы квалифицировать глобальные приложения с помощью приложения. «Если бы вы это сделали, IntelliSense сказал бы вам, что вы искали. –

ответ

8

Вы должны использовать ActiveSheet вместо ActiveWorksheet

+0

Упс. Благодаря! – unikitty94

3

Я предпочитаю не использовать ActiveSheet в VBA, потому что если дальше вниз по дорожке, как начать писать код, который использует несколько рабочих листов может привести к путанице при попытке определить, что есть что. Я предпочитаю следующий

dim ws as Worksheet 

ws = Thisworkbook.Worksheets(1) 

OR 

ws = Thisworkbook.Worksheets("worksheet name") 

Единственный раз, когда я использую ActiveSheet теперь, когда мне нужно код, чтобы работать на любом листе, независимо от того, что он содержит, что очень редко. В этом случае, как уже было сказано выше, использование:

dim ws as Worksheet 

ws = Thisworkbook.Activesheet 

OR 

ws = Activesheet 
0

Для меня я люблю напрямую поговорить с листа я хочу адресовать с помощью листа («Рабочий лист»).

Так что, если вы хотите принять информацию сформировать конкретный лист вы можете использовать это:

Dim ExampleWorksheet as Worksheet 
Dim Example as Integer 

Example = Sheets("ExampleWorksheet").Cells(x,y) 

Так вы избавитесь от возни с активным или нет активных рабочих листов.

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