Как активировать конкретный лист в Excel?

46

Мне просто нужно активировать определенный лист. У меня есть строковая переменная, которая сохраняет имя рабочего листа.

Теги:
excel

3 ответа

88

Помогла бы вам следующая макроса?

Sub activateSheet(sheetname As String)
'activates sheet of specific name
    Worksheets(sheetname).Activate
End Sub

В основном вы хотите использовать функцию .Activate. Или вы можете использовать функцию .Select следующим образом:

Sub activateSheet(sheetname As String)
'selects sheet of specific name
    Sheets(sheetname).Select
End Sub
  • 1
    sheetname листа может быть индексом рабочего листа (т. е. целое число). Даже если значение Option Base равно 0, оно начинается с индекса 1.
4

Я бы рекомендовал вам использовать индекс рабочего листа вместо использования имени рабочего листа, таким образом, вы можете также циклически прокладывать листы "динамически"

for i=1 to thisworkbook.sheets.count
 sheets(i).activate
'You can add more code 
with activesheet
 'Code...
end with
next i

Это также улучшит производительность.

  • 0
    Как это повышает производительность по сравнению с Worksheets().Activate ?
  • 0
    @TylerH Улучшает производительность над листами («Имя»).
0

Альтернативный способ (не динамически) связывать текст, чтобы активировать рабочий лист без макросов, - сделать выбранную строку фактической ссылкой. Вы можете сделать это, выбрав ячейку, которая содержит текст, и нажмите CTRL + K, затем выберите опцию/вкладку "Место в этом документе" и выберите вкладку, которую вы хотите активировать. Если вы нажмете на текст (теперь это ссылка), настроенный лист станет активным/выбранным.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню