Das geht nicht:
Public Const shtSim = ThisWorkbook.Worksheets("Simulation")
Wie dann?
Gruß
Peter
Sub Start() 'Aufruf bei Workbook_Open
Set shtSim = ThisWorkbook.Sheets("Simulation")
End Sub
Private Sub Workbook_Open()
Set shtSim = ThisWorkbook.Worksheets("Simulation")
End Sub
Um ein Worksheet in Excel VBA als Konstante zu verwenden, musst du beachten, dass Objekte wie Worksheets nicht direkt als Public Const
deklariert werden können. Stattdessen kannst du die folgende Methode verwenden:
Öffne den Visual Basic for Applications (VBA) Editor in Excel (Alt + F11).
Füge ein neues Modul hinzu (Rechtsklick auf „VBAProject [DeinWorkbook]“ > Einfügen > Modul).
Deklariere deine Worksheet-Variable als Public
:
Public shtSim As Worksheet
Initialisiere die Variable im Workbook_Open
-Ereignis:
Private Sub Workbook_Open()
Set shtSim = ThisWorkbook.Worksheets("Simulation")
End Sub
Jetzt kannst du shtSim
in deinem gesamten Projekt verwenden, ohne die Zuweisung erneut durchführen zu müssen, solange das Workbook offen ist.
Fehler: Variable ist nicht mehr belegt.
Workbook_Open
-Ereignis erfolgt und dass das Workbook nicht geschlossen wurde.Fehler: Objekt kann nicht gefunden werden.
Wenn du keine Public
Variable verwenden möchtest, kannst du auch den Codename des Worksheets verwenden. Der Codename ist der Name, der im VBA-Projekt angezeigt wird und nicht geändert werden kann:
Sheet1.Range("A1").Value = "Hallo Welt!"
Hierbei ist Sheet1
der Codename des Worksheets, was es einfacher macht, darauf zuzugreifen, ohne den Namen des Worksheets anzugeben.
Zugriff auf eine Zelle im Worksheet:
Sub BeispielZugriff()
shtSim.Range("A1").Value = "Test"
End Sub
Kopieren von Daten aus einem anderen Worksheet:
Sub DatenKopieren()
ThisWorkbook.Worksheets("Daten").Range("A1:B10").Copy Destination:=shtSim.Range("A1")
End Sub
Option Explicit
am Anfang deiner Module, um sicherzustellen, dass alle Variablen deklariert werden. Dies hilft, Fehler beim Programmieren zu vermeiden.Nutze Error Handling
, um sicherzustellen, dass dein Code auch bei Fehlern robust bleibt:
On Error Resume Next
' Dein Code hier
On Error GoTo 0
1. Kann ich ein Worksheet als konstanter Wert verwenden?
Nein, ein Worksheet ist ein Objekt und kann nicht als Public Const
deklariert werden. Du kannst jedoch eine Public
Variable verwenden, um darauf zuzugreifen.
2. Was passiert mit meiner Variable, wenn ich das Workbook schließe? Die Variable wird beim Schließen des Workbooks gelöscht. Du musst sie erneut initialisieren, wenn das Workbook wieder geöffnet wird.
3. Wie kann ich sicherstellen, dass mein Code nicht fehlschlägt, wenn das Worksheet nicht existiert? Verwende eine Fehlerbehandlung oder prüfe, ob das Worksheet vorhanden ist, bevor du darauf zugreifst:
Dim ws As Worksheet
On Error Resume Next
Set ws = ThisWorkbook.Worksheets("Simulation")
On Error GoTo 0
If ws Is Nothing Then
MsgBox "Das Worksheet 'Simulation' existiert nicht!"
End If
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen