Tabellenblatt mit InputBox in Excel VBA auswählen
Schritt-für-Schritt-Anleitung
Um ein Tabellenblatt in Excel mit VBA auszuwählen, kannst du die folgende Methode verwenden. In diesem Beispiel wird eine InputBox
verwendet, um den Namen des Tabellenblatts einzugeben:
Sub TabSelect()
Dim wks As Worksheet
Dim strWks As String
strWks = InputBox("Bitte Kalenderwoche (Tabellenblatt) angeben:")
If strWks = "" Then Exit Sub
On Error Resume Next
Set wks = Worksheets(strWks)
If Err.Number > 0 Then
Beep
MsgBox "Blatt nicht gefunden!"
Else
wks.Select
End If
End Sub
Diese Methode verwendet On Error Resume Next
, um sicherzustellen, dass der Code nicht abbricht, wenn das Tabellenblatt nicht gefunden wird. Stattdessen wird eine Fehlermeldung angezeigt.
Häufige Fehler und Lösungen
-
Leerzeichen im Blattnamen:
- Stelle sicher, dass keine zusätzlichen Leerzeichen im Namen des Tabellenblatts vorhanden sind. Zum Beispiel könnte das Blatt " 1" oder "1 " heißen, was zu Problemen führen kann.
-
Falsche Eingabe:
- Wenn du eine Zahl wie "1" eingibst, kann es sein, dass mehrere Blätter diese Zahl enthalten (z.B. "1", "21", "31"). Achte darauf, dass du den genauen Namen des Blattes eingibst, um das richtige auszuwählen.
-
Zugriffsprobleme:
- Wenn du auf ein geschütztes Blatt zugreifen möchtest, stelle sicher, dass du die entsprechenden Berechtigungen hast.
Alternative Methoden
Eine alternative Methode, um ein Tabellenblatt auszuwählen, ist die Verwendung von Application.InputBox
, da diese Funktion die Eingabetypen einschränken kann. Hier ist ein Beispiel:
Sub TabSelectAlternative()
Dim wks As Worksheet
Dim strWks As Variant
strWks = Application.InputBox("Bitte Kalenderwoche (Tabellenblatt) angeben:", Type:=2)
If strWks = False Then Exit Sub
On Error Resume Next
Set wks = Worksheets(strWks)
If Err.Number > 0 Then
Beep
MsgBox "Blatt nicht gefunden!"
Else
wks.Select
End If
End Sub
Hierbei wird der Typ der Eingabe auf Type:=2
gesetzt, was bedeutet, dass nur Texteingaben akzeptiert werden.
Praktische Beispiele
-
Einfaches Beispiel:
- Du hast ein Tabellenblatt mit dem Namen "Anmeldung". Um dieses auszuwählen, gib einfach "Anmeldung" in die InputBox ein.
-
Zahleneingabe:
- Wenn deine Tabellenblätter von "1" bis "52" nummeriert sind, gib die Zahl ein (z.B. "1" für das Blatt "1").
-
Fehlerbehandlung:
- Wenn du die Eingabe leer lässt, wird das Makro abgebrochen und es passiert nichts.
Tipps für Profis
- Verwendung von
Trim
:
Nutze die Trim
-Funktion, um sicherzustellen, dass keine Leerzeichen bei der Eingabe berücksichtigt werden:
strWks = Trim(InputBox("Bitte Kalenderwoche (Tabellenblatt) angeben:"))
-
Fallunterschiede ignorieren:
Um sicherzustellen, dass die Eingabe unabhängig von der Groß- und Kleinschreibung funktioniert, kannst du die UCase
-Funktion verwenden.
-
Zugriff auf mehrere Blätter:
Wenn du mit vielen Blättern arbeitest, kann es sinnvoll sein, eine Dropdown-Liste zur Auswahl der Blätter zu erstellen, anstatt manuell einzugeben.
FAQ: Häufige Fragen
1. Warum funktioniert die Auswahl für einstellige Zahlen nicht?
Die Auswahl funktioniert möglicherweise nicht, weil das Programm auch nach anderen Blättern sucht, die die gleiche Zahl enthalten. Achte darauf, den genauen Namen des Blattes einzugeben.
2. Kann ich die Methode auch für andere Excel-Versionen nutzen?
Ja, die vorgestellten VBA-Methoden sind in den meisten Excel-Versionen anwendbar, einschließlich Excel 2000 und Excel 2007. Achte darauf, dass die entsprechenden Sicherheitsoptionen für Makros aktiviert sind.