Ich muss nur ein bestimmtes Arbeitsblatt aktivieren. Ich habe eine String-Variable, 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
Im Grunde wollen Sie die Funktion .Aktivieren verwenden. Oder Sie können die Funktion .Select wie folgt verwenden:
Sub activateSheet(sheetname As String)
'selects sheet of specific name
Sheets(sheetname).Select
End Sub
Ich würde Ihnen empfehlen, den Index des Arbeitsblatts zu verwenden, anstatt den Namen des Arbeitsblatts zu verwenden. Auf diese Weise können Sie auch dynamisch durch die Blätter laufen;
for i=1 to thisworkbook.sheets.count
sheets(i).activate
'You can add more code
with activesheet
'Code...
end with
next i
Dies wird auch die Leistung verbessern.
Eine alternative Möglichkeit, einen Text (nicht dynamisch) zu verknüpfen, um ein Arbeitsblatt ohne Makros zu aktivieren, besteht darin, die ausgewählte Zeichenfolge zu einer tatsächlichen Verknüpfung zu machen. Dazu markieren Sie die Zelle, die den Text enthält, drücken STRG+K und wählen dann die Option/Registerkarte 'In diesem Dokument platzieren' und wählen die Registerkarte, die Sie aktivieren möchten. Wenn Sie auf den Text (der nun eine Verknüpfung ist) klicken, wird das konfigurierte Blatt aktiv/ausgewählt.