Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1184to1188
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Namen aller Tabellenblätter in ein Array schreiben

Namen aller Tabellenblätter in ein Array schreiben
Martin
Hallo liebe Excelprofis,
gibt es eine Möglichkeit ohne eine Schleife die Namen aller Tabellenblätter in ein Array zu schreiben? Ich habe es so probiert, aber ohne Erfolg:
Sub Versuch()
Dim ArrTabellen As Variant
ArrTabellen = Array(ActiveWorkbook.Worksheets)
End Sub
Mit einer Schleife ist es mir hingegen gelungen:
Sub Loesung()
Dim i As Integer
Dim ArrTabellen As Variant
ReDim ArrTabellen(0 To ActiveWorkbook.Sheets.Count - 1)
For i = 1 To ActiveWorkbook.Sheets.Count
ArrTabellen(i - 1) = Sheets(i).Name
Next i
End Sub
Meine Frage stelle ich nur aus Interesse, vielleicht kann ich von euch mal wieder etwas lernen.
Viele Grüße
Martin
AW: Namen aller Tabellenblätter in ein Array schreiben
04.11.2010 12:49:18
Peter
Hallo Martin,
so sollte das funktionieren:
Option Explicit
Public Sub Blattnamen()
Dim WkSh      As Worksheet
Dim vBlatt()  As String
Dim iIndx     As Integer
For Each WkSh In ThisWorkbook.Worksheets
ReDim Preserve vBlatt(iIndx)
vBlatt(iIndx) = WkSh.Name
iIndx = iIndx + 1
Next WkSh
For iIndx = LBound(vBlatt) To UBound(vBlatt)
MsgBox vBlatt(iIndx)
Next iIndx
End Sub
Gruß Peter
AW: Namen aller Tabellenblätter in ein Array schreiben
04.11.2010 13:03:59
Martin
Hallo Peter,
vielen Dank für deine Antwort. Ich dachte, dass es eventuell eine Möglichkeit gibt direkt über die "Array-Funktion" Arr = Array(Tabelle1,Tabelle2,Tabelle3) die Argumentenliste (also Tabellenblätter) irgendwie (in der Art "ActiveWorkbook.Worksheets") an das Array übergeben werden könnten. Aber das geht so scheinbar nicht. Ich dachte nur, man könnte es so ein wenig einfacher machen.
Viele Grüße
Martin
Anzeige
AW: Namen aller Tabellenblätter in ein Array schreiben
04.11.2010 13:04:59
Rudi
Hallo Peter,
sorry, aber er wollte die Namen ohne Schleife in das Array schreiben.
Außerdem ist die ständige Neudimensionierung des Arrays was für den Popo.
Gruß
Rudi
AW: Namen aller Tabellenblätter in ein Array schreiben
04.11.2010 13:54:20
fcs
Hallo Martin,
deklariere eine Variable als Sheets.
Dieser kannst du dann die Blätter per Set zuweisen. Die Variable verhält sich ähnlich wie ein Array, ist jedoch ein Auflistungs-Objekt.
Gruß
Franz
Sub aaSheetsArray()
Dim arrSheets As Sheets, oSheet As Object, iIndex As Integer
Set arrSheets = ActiveWorkbook.Worksheets
For Each oSheet In arrSheets
MsgBox "Blatt " & oSheet.Index & ": " & oSheet.Name
Next
For iIndex = 1 To arrSheets.Count
MsgBox "Blatt " & arrSheets(iIndex).Index & ": " & arrSheets(iIndex).Name
Next
End Sub

Anzeige
Super, genau das habe ich mir vorgestellt
04.11.2010 14:35:01
Martin
Hallo Franz,
schön, dann habe ich doch wieder etwas neues gelernt. Vielen Dank für deine hilfreiche Antwort!
Schöne Grüße
Martin

9 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige