Мне просто нужно активировать определенный рабочий лист. У меня есть строковая переменная, которая сохраняет имя рабочего листа.
Поможет ли вам следующий Макрос??
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
Я бы порекомендовал вам использовать индекс рабочего листа вместо использования имени рабочего листа, таким образом, вы также можете циклически просматривать листы
for i=1 to thisworkbook.sheets.count
sheets(i).activate
'You can add more code
with activesheet
'Code...
end with
next i
Это также улучшит производительность.
Альтернативный способ (не динамически) связать текст для активации рабочего листа без макросов - сделать выбранную строку фактической ссылкой. Вы можете сделать это, выбрав ячейку, содержащую текст, и нажав CTRL + K, затем выберите опцию / вкладку «Поместить в этот документ» и выберите вкладку, которую вы хотите активировать. Если вы нажмете текст (это теперь ссылка), настроенный лист станет активным / выбранным.