Ich muss nur ein bestimmtes Arbeitsblatt aktivieren. Ich habe eine Stringvariable, die den Namen des Arbeitsblatts enthält.
Würde Ihnen das folgende Makro helfen?
Sub activateSheet(sheetname As String)
'activates sheet of specific name
Worksheets(sheetname).Activate
End Sub
Grundsätzlich möchten Sie die .Activate-Funktion nutzen. Oder Sie können die .Select-Funktion wie folgt verwenden:
Sub activateSheet(sheetname As String)
'selects sheet of specific name
Sheets(sheetname).Select
End Sub
Ich würde empfehlen, den Index des Arbeitsblatts zu verwenden, anstatt den Namen des Arbeitsblatts zu verwenden. Auf diese Weise können Sie die Blätter auch "dynamisch" durchlaufen.
for i=1 to thisworkbook.sheets.count
sheets(i).activate
'You can add more code
with activesheet
'Code...
end with
next i
Es wird auch die Leistung verbessern.
Eine Alternative zum (nicht dynamischen) Verknüpfen eines Textes zum Aktivieren eines Arbeitsblatts ohne Makros besteht darin, die ausgewählte Zeichenfolge zu einem tatsächlichen Link zu machen .. Sie können dies tun, indem Sie die Zelle auswählen, die den Text enthält, und STRG + K drücken und dann die Option/Registerkarte 'In dieses Dokument platzieren' und wählen Sie die Registerkarte aus, die Sie aktivieren möchten .. Wenn Sie auf den Text klicken (der jetzt ein Link ist), wird das konfigurierte Blatt aktiviert/ausgewählt.