Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Exel-Worksheet einer Variable zuordnen

Exel-Worksheet einer Variable zuordnen
29.08.2017 10:30:28
Simo7
Hallo Tüftler-Gemeinde,
ich habe eine sehr triviale Frage, welche ich dennoch stellen muss, da ich es einfach nicht hinbekomme ein Worksheet einer Varibale zuzuweisen, um diese dann im späteren Verlauf wieder anzusprechen. Ich habe es versucht mit:
Dim ws1 as Worksheet
Set ws1 = Worksheet.Open("BeispielWorksheetName")
Was mache ich falsch?
Grüße,
Simo7
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel-Worksheet einer Variable zuordnen
29.08.2017 10:35:08
Simo7
* Excel-Worksheet einer Variable zuordnen sollte es natürlich lauten. Leider kann ich den Titel nicht mehr editieren?
AW: Exel-Worksheet einer Variable zuordnen
29.08.2017 10:38:54
Nepumuk
Hallo Simo7,
ein Worksheet hat keine Open-Methode. Du musst erst die Mappe öffnen und das die Variable zuweisen.
Beispiel:
Public Sub Beispiel()
    Dim objWorbook As Workbook
    Dim objWorksheet As Worksheet
    Set objWorbook = Workbooks.Open(Filename:="C:\Ordner\Unterordner\Datei.xlsx")
    Set objWorksheet = objWorbook.Worksheets("DeinWorksheet")
End Sub

Gruß
Nepumuk
Anzeige
AW: Exel-Worksheet einer Variable zuordnen
29.08.2017 11:03:12
Simo7
Hallo Nepumuk,
vielen Dank für Deine schnelle Antwort. Ich habe noch zwei Rückfragen zu Deinem Code:
Ich erhalte die Fehlermeldung, dass das Workbook welches ich versuche zu öffnen bereits geöffnet ist und alle Änderungen verloren gehen, wenn ich es erneut öffne. Es sollen ja nur Worksheets innerhalb der bereits geöffneten Datei einer Variable zugewiesen werden (also kein zweites oder drittes Workbook geöffnet werden, um von dort etwas der Variable zuzuweisen etc.). Geht man trotzdem so vor?
Und es ist natürlich blöd, wenn ich den Pfad der Datei angeben muss, wenn die Datei mal verschoben wird. Gibt es die Möglichkeit etwas wie Active.Workbook einzuprogrammieren? Wie gesagt, es handelt sich immer um das ein und das selbe Workbook, nur eben mit den verschiedenen Sheets.
Grüße und Danke,
Simo7
Anzeige
AW: Exel-Worksheet einer Variable zuordnen
29.08.2017 11:07:39
Nepumuk
Hallo Simo7,
wenn die Mappe schon offen ist, dann so:
Public Sub Beispiel()
    Dim objWorksheet As Worksheet
    Set objWorksheet = Workbooks("Mappe1.xlsx").Worksheets("Tabelle1")
End Sub

Gruß
Nepumuk
Anzeige
AW: Exel-Worksheet einer Variable zuordnen
29.08.2017 11:26:01
Simo7
Super, genau das habe ich gebraucht!
Besten Dank!
Grüße,
Simo7
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Excel-Worksheet einer Variable zuordnen


Schritt-für-Schritt-Anleitung

Um ein Worksheet in Excel VBA einer Variable zuzuweisen, kannst du die folgenden Schritte befolgen:

  1. Variable deklarieren: Zuerst musst du eine Variable vom Typ Worksheet deklarieren. Zum Beispiel:

    Dim ws1 As Worksheet
  2. Zuweisung der Worksheet-Variable: Wenn das Workbook bereits geöffnet ist und du ein spezifisches Worksheet ansprechen möchtest, kannst du es so zuweisen:

    Set ws1 = Workbooks("Mappe1.xlsx").Worksheets("Tabelle1")
  3. Verwendung der Variable: Nun kannst du die ws1 Variable verwenden, um auf das spezifische Worksheet zuzugreifen, z.B. um Zellen zu bearbeiten oder Daten zu lesen:

    ws1.Range("A1").Value = "Hallo Welt"

Häufige Fehler und Lösungen

  • Fehler: "Workbook bereits geöffnet": Wenn du versuchst, ein Workbook zu öffnen, das bereits geöffnet ist, erhältst du eine Fehlermeldung. In diesem Fall solltest du die Zuweisung wie folgt anpassen:

    Set ws1 = ActiveWorkbook.Worksheets("Tabelle1")
  • Fehler: "Worksheet nicht gefunden": Stelle sicher, dass der Name des Worksheets korrekt geschrieben ist. Ein Tippfehler führt zu einem Laufzeitfehler.


Alternative Methoden

Eine alternative Methode, um ein Worksheet einer Variable zuzuweisen, besteht darin, die Worksheet-Indexnummer zu verwenden:

Set ws1 = Workbooks("Mappe1.xlsx").Worksheets(1) ' Zuweisung des ersten Worksheets

Mit dieser Methode kannst du auch auf Worksheets zugreifen, ohne den Namen zu kennen, was besonders nützlich ist, wenn sich die Namen häufig ändern.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie du ein Worksheet als Variable in Excel VBA nutzen kannst:

  1. Daten kopieren:

    Dim ws1 As Worksheet
    Set ws1 = Workbooks("Mappe1.xlsx").Worksheets("Tabelle1")
    ws1.Range("A1:B10").Copy Destination:=ws1.Range("C1")
  2. Schleife durch alle Worksheets:

    Dim ws As Worksheet
    For Each ws In ThisWorkbook.Worksheets
        Debug.Print ws.Name
    Next ws

Tipps für Profis

  • Verwende Option Explicit am Anfang deines VBA-Codes, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehler zu vermeiden.
  • Nutze With-Blöcke, um den Code lesbarer und effizienter zu gestalten:
    With ws1
        .Range("A1").Value = "Beispiel"
        .Range("A2").Value = "Test"
    End With

FAQ: Häufige Fragen

1. Wie kann ich ein Worksheet in einer Variable speichern, wenn das Workbook geschlossen ist? Du kannst das Workbook nicht ansprechen, wenn es nicht geöffnet ist. Öffne das Workbook zuerst mit Workbooks.Open, bevor du das Worksheet zuweist.

2. Was passiert, wenn ich den Namen des Worksheets ändere? Wenn du den Namen des Worksheets änderst, musst du sicherstellen, dass du auch den Namen in deinem VBA-Code anpasst, um Laufzeitfehler zu vermeiden. Ein dynamischer Bezug kann hier hilfreich sein.

3. Ist es möglich, mehrere Worksheets in einer Variablen zu speichern? Ja, du kannst ein Array von Worksheets verwenden oder eine Collection, um mehrere Worksheets zu speichern.

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