Sólo necesito activar una determinada hoja de trabajo. Tengo una variable de cadena que guarda el nombre de la hoja de trabajo.
¿Le ayudaría la siguiente Macro?
Sub activateSheet(sheetname As String)
'activates sheet of specific name
Worksheets(sheetname).Activate
End Sub
Básicamente quieres hacer uso de la función .Activar. O puede utilizar la función .Select así:
Sub activateSheet(sheetname As String)
'selects sheet of specific name
Sheets(sheetname).Select
End Sub
Le recomendaría utilizar el índice de la hoja de trabajo en lugar de utilizar el nombre de la hoja de trabajo, de esta manera también puede hacer un bucle a través de las hojas "dinámicamente"";
for i=1 to thisworkbook.sheets.count
sheets(i).activate
'You can add more code
with activesheet
'Code...
end with
next i
También, mejorará el rendimiento.
Una forma alternativa de vincular (no dinámicamente) un texto para activar una hoja de trabajo sin macros es hacer que la cadena seleccionada sea un enlace real. Puede hacerlo seleccionando la celda que contiene el texto y pulsando CTRL+K, luego seleccione la opción/pestaña 'Colocar en este documento' y seleccione la pestaña que desea activar. Si hace clic en el texto (que ahora es un enlace) la hoja configurada se activará/seleccionará.