wie muss ich denn eine Variable definieren, die den momentan aktiven Sheetnamen erfassen soll?
Dieser Sheetname soll dann in einem Makro im Befehl
Sheets(aktiver Sheet).Select ausgewählt werden.
Vielen Dank
MikeS
:)
Dieser Sheetname soll dann in einem Makro im Befehl
Sheets(aktiver Sheet).Select ausgewählt werden.
Vielen Dank
MikeS
:)
Gruß Boris
Aber verrate mal, warum Du das überhaupt tun möchtest? Das aktive Sheet ist doch bereits selektiert, sonst wäre es ja nicht das aktive Sheet.
Gruß Harald
'
Dim blattname As String
blattname = ActiveSheet.Name
Sheets("evn092002").Select
Selection.Copy
ActiveSheet.Name = blattname ["???"]
Cells.Select
Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False
Range("B5").Select
End Sub
Ich habe jetzt folgendes probiert, aber er fliegt an einer Stelle immer wieder raus:
Sub Telekom_EVN_Import()
'
' Telekom_EVN_Import Makro
' Formatiert den Einzelverbindungsnachweis NACH DEM IMPORT!
'
'
Dim blattname As String
blattname = ActiveSheet.Name
Sheets("evn092002").Select
Selection.Copy
ActiveSheet.Name = blattname [Hier steigt er aus]
Cells.Select
Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False
Range("B5").Select
End Sub
Hast Du eine Idee?
mach diese Zeile rein:
Sheets(blattname).Select
a = activesheet.name
grüße
Um den aktiven Sheetnamen in einer Variable zu speichern, kannst du folgenden VBA-Code verwenden:
Dim blattname As String
blattname = ActiveSheet.Name
Dieser Code speichert den Namen des aktiven Sheets in der Variablen blattname
. Du kannst diese Variable dann verwenden, um auf das aktive Sheet zuzugreifen oder um es in einem Makro zu verwenden.
Wenn du beispielsweise zu einem anderen Sheet wechseln und danach zum ursprünglichen zurückkehren möchtest, gehe so vor:
Sub Beispiel()
Dim blattname As String
blattname = ActiveSheet.Name
' Wechsel zu einem anderen Sheet
Sheets("evn092002").Select
' Zurück zum ursprünglichen Sheet
Sheets(blattname).Select
End Sub
In diesem Beispiel wird das aktive Sheet zuerst in der Variable blattname
gespeichert, dann wird zu einem anderen Sheet gewechselt, und schließlich wird das ursprüngliche Sheet mit Sheets(blattname).Select
wieder aktiviert.
Fehler: "Subscript out of range"
Sheets("evn092002").Select
existiert nicht.Fehler: "Object variable or With block variable not set"
blattname
korrekt gesetzt wurde und ob das aktive Sheet existiert.Fehler beim Zugriff auf die Variable
ActiveSheet
nicht definiert ist.Wenn du die aktive Sheet-Name-Variable auf eine andere Weise erfassen möchtest, kannst du auch Folgendes tun:
Dim sheetName As String
sheetName = ThisWorkbook.ActiveSheet.Name
Diese Methode stellt sicher, dass du den Namen des aktiven Sheets im aktuellen Workbook erfasst, selbst wenn die Arbeitsmappe gewechselt wurde.
Hier sind einige praktische Anwendungen der vba worksheet name as variable
:
Formatierung übernehmen:
Sub FormatSheet()
Dim blattname As String
blattname = ActiveSheet.Name
Sheets("Vorlage").Cells.Copy
Sheets(blattname).Cells.PasteSpecial Paste:=xlFormats
End Sub
Datenübertragung zwischen Sheets:
Sub TransferData()
Dim blattname As String
blattname = ActiveSheet.Name
Sheets(blattname).Range("A1").Value = Sheets("Datenquelle").Range("B1").Value
End Sub
Verwendung von Option Explicit
: Setze Option Explicit
am Anfang deines Moduls, um sicherzustellen, dass alle Variablen deklariert werden. Dies hilft, Fehler zu vermeiden.
Fehlerbehandlung: Implementiere eine Fehlerbehandlung in deinem Makro, um unerwartete Probleme elegant abzufangen:
On Error Resume Next
' Dein Code hier
If Err.Number <> 0 Then
MsgBox "Ein Fehler ist aufgetreten: " & Err.Description
End If
On Error GoTo 0
With
-Blöcke: Um den Code lesbarer zu machen, verwende With
-Blöcke:With Sheets(blattname)
.Range("A1").Value = "Hallo"
.Cells.Copy
End With
1. Wie kann ich den Namen eines Sheets in einer Variablen speichern?
Um den Namen des aktiven Sheets zu speichern, kannst du blattname = ActiveSheet.Name
verwenden.
2. Was ist der Unterschied zwischen ActiveSheet
und Sheets(blattname)
?
ActiveSheet
bezieht sich auf das derzeit aktive Sheet, während Sheets(blattname)
das Sheet mit dem Namen in der Variablen blattname
auswählt.
3. Wie kann ich sicherstellen, dass mein Makro nicht abstürzt?
Verwende Fehlerbehandlungen und Option Explicit
, um sicherzustellen, dass alle Variablen korrekt deklariert und Fehler abgefangen werden.
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