2010-10-25 2 views

risposta

85

La seguente macro può aiutarti?

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

Fondamentalmente si desidera utilizzare la funzione. Attiva. Oppure è possibile utilizzare la funzione .Selezionare in questo modo:

Sub activateSheet(sheetname As String) 
'selects sheet of specific name 
    Sheets(sheetname).Select 
End Sub 
+0

'sheetname' può essere il numero di indice del foglio di lavoro (così intero). Anche se il valore di "Option Base" è 0, inizia dall'indice 1. –

0

Un modo alternativo di (non in modo dinamico) collegare un testo per attivare un foglio di lavoro senza le macro è quello di rendere la stringa selezionata un nesso effettivo. Puoi farlo selezionando la cella che contiene il testo e premi CTRL + K quindi seleziona l'opzione/scheda "Inserisci in questo documento" e seleziona la scheda che desideri attivare. Se si farebbe clic sul testo (che ora è un collegamento), il foglio configurato diventerà attivo/selezionato.

4

ti consiglierei di utilizzare l'indice di foglio di lavoro, invece di usare il nome di foglio di lavoro, in questo modo si può anche collegare attraverso fogli "dinamicamente"

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

Sarà inoltre, migliorare le prestazioni.

+0

Come migliora le prestazioni rispetto a 'Worksheets(). Activate'? – TylerH

+0

@TylerH Migliora le prestazioni su fogli ("Nome"). – Moreno