Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Tabellenblatt über Variable ansprechen

Forumthread: Tabellenblatt über Variable ansprechen

Tabellenblatt über Variable ansprechen
20.06.2014 23:53:32
reiner

Hallo Leute,
mit nachfolgendem Programmcode wird der Name eines Tabellenblatts ausgelesen:

Variable1 = ActiveWorkbook.ActiveSheet.Name
Während der Abarbeitung des Makros werden weitere Tabellenblätter geöffnet.
Am Ende der Makro-Bearbeitung soll mittels des in "Variable1" gespeicherten Namens das am Anfang geöffnete Tabellenblatt erneut aktiviert werden. Mit:
ActiveWorkbook.ActiveSheet.Name = Variable1 

funktioniert das aber nicht. Kann mir jemand einen Tipp geben?
mfG
reiner

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellenblatt über Variable ansprechen
21.06.2014 00:11:14
Daniel
Hi
der von dir verwendete Befehl ändert den Namen des aktiven Tabellenblatts in den Wert der Variablen.
um das Blatt zu aktivieren, dessen Namen du in der Variablen gespeichert hast, musst du folgendes verwenden:
activeworkbook.Sheets(Variable1).Activate
Gruß Daniel

AW: Tabellenblatt über Variable ansprechen
21.06.2014 00:22:53
reiner
hallo Daniel,
das ist die Lösung, danke dir
reiner

Anzeige
AW: Tabellenblatt über Variable ansprechen
21.06.2014 10:53:14
Hajo_Zi
Hallo Reiner,
Select, Activate usw. ist in VBA zu 99,9% nicht notwendig.
Der Cursor ist kein Hund der überall rumgeführt werden muss.
Hinweise zu select usw. Hajo-Excel.de
Hinweise zu select usw. Online-Excel.de
verzichte darauf und Du hast das Problem nicht.

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Infobox / Tutorial

Tabellenblatt über Variable ansprechen in Excel VBA


Schritt-für-Schritt-Anleitung

Um ein Tabellenblatt über eine Variable in Excel VBA anzusprechen, kannst du die folgenden Schritte befolgen:

  1. Öffne den VBA-Editor: Drücke ALT + F11 in Excel, um den Visual Basic for Applications Editor zu öffnen.

  2. Erstelle ein neues Modul: Klicke mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsx)" und wähle "Einfügen" > "Modul".

  3. Füge den folgenden Code ein:

    Sub Beispiel()
       Dim Variable1 As String
       Variable1 = ActiveWorkbook.ActiveSheet.Name ' Aktives Tabellenblatt als Variable speichern
    
       ' Weitere Programmlogik hier
    
       ActiveWorkbook.Sheets(Variable1).Activate ' Aktives Tabellenblatt über Variable ansprechen
    End Sub
  4. Führe das Makro aus: Klicke auf "Ausführen" oder drücke F5, während du im Modul bist.

Mit dieser Methode kannst du das aktive Tabellenblatt als Variable speichern und später wieder darauf zugreifen.


Häufige Fehler und Lösungen

  • Problem: Der Code ActiveWorkbook.ActiveSheet.Name = Variable1 wird verwendet, um ein Tabellenblatt zu aktivieren.

    • Lösung: Stattdessen solltest du ActiveWorkbook.Sheets(Variable1).Activate verwenden, um das Tabellenblatt über die gespeicherte Variable zu aktivieren.
  • Problem: Fehlermeldung "Subscript out of range".

    • Lösung: Stelle sicher, dass das Tabellenblatt mit dem Namen in der Variable existiert. Überprüfe Rechtschreibung und Groß-/Kleinschreibung.

Alternative Methoden

Eine Alternative zum Aktivieren eines Tabellenblatts ist die Verwendung der With-Anweisung:

Sub MitWithBeispiel()
    Dim Variable1 As String
    Variable1 = ActiveWorkbook.ActiveSheet.Name

    With ActiveWorkbook.Sheets(Variable1)
        ' Weitere Operationen hier
    End With
End Sub

Hierbei wird das angegebene Tabellenblatt als Kontext verwendet, was den Code klarer und effizienter macht.


Praktische Beispiele

Ein häufiges Szenario ist das Arbeiten mit mehreren Tabellenblättern. Angenommen, du möchtest das aktive Tabellenblatt speichern und am Ende deines Makros zurückkehren:

Sub ZurueckZumUrsprung()
    Dim UrsprungsBlatt As String
    UrsprungsBlatt = ActiveWorkbook.ActiveSheet.Name

    ' Hier erfolgt die Bearbeitung anderer Blätter

    ActiveWorkbook.Sheets(UrsprungsBlatt).Activate
End Sub

Dieses Beispiel zeigt, wie du das aktive Tabellenblatt als Variable speicherst und später darauf zurückgreifst.


Tipps für Profis

  • Vermeide unnötige Select- und Activate-Befehle. Diese können den Code verlangsamen und sind in der Regel nicht erforderlich.
  • Nutze die Möglichkeit, Tabellenblätter über ihre Indizes anzusprechen, wenn du sicher bist, dass die Reihenfolge der Blätter konstant bleibt: ActiveWorkbook.Sheets(1).Activate.
  • Verwende Option Explicit zu Beginn deiner Module, um sicherzustellen, dass alle Variablen deklariert sind, was Fehler vermeidet.

FAQ: Häufige Fragen

1. Wie speichere ich mehrere Tabellenblattnamen in Variablen?
Du kannst ein Array verwenden, um mehrere Namen zu speichern:

Dim Blätter(1 To 2) As String
Blätter(1) = "Tabelle1"
Blätter(2) = "Tabelle2"

2. Was ist der Unterschied zwischen Select und Activate?
Select wählt ein Objekt aus, während Activate es aktiv macht. In den meisten Fällen ist Activate ausreichend und Select kann vermieden werden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige