Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1948to1952
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

ThisWorkbook.Worksheets

ThisWorkbook.Worksheets
18.10.2023 10:08:44
Thomas
Hallo

ich möchte anstatt This einen Tabellenblattnamen vorgeben.
Da meine VBA Kenntnisse eher gering sind. die frage in die Runde.
Wie muss der Code Aussehen, wenn ich den Tabellenblattnamen "Tabelle1" ansprechen will?

Vielen Dank für Eure Hilfe

Sub Mehrere_Dateien_auswaehlen()



Dim arrDateien As Variant
Dim wbQuelle As Workbook
Dim LetzteZeile As Long
Dim cntDatei As Long
Dim rngQuelle As Range

'Screenupdating und PopUps deaktivieren
Application.ScreenUpdating = False
Application.DisplayAlerts = False

'Benutzer Dateien ausw_hlen lassen
arrDateien = Application.GetOpenFilename(FileFilter:="Excel-Dateien (*.xls*),*.xls*", MultiSelect:=True)

'Wurde eine Datei ausgew_hlt?
If IsArray(arrDateien) Then

'Schleife Ùber alle ausgew_hlten Dateien
For cntDatei = 1 To UBound(arrDateien)

LetzteZeile = ThisWorkbook.Worksheets(1).Cells(Rows.Count, 1).End(xlUp).Row

'Aktuelle Arbeitsmappe _ffnen
Set wbQuelle = Workbooks.Open(Filename:=arrDateien(cntDatei))

'Daten-Range setzen
Set rngQuelle = wbQuelle.Worksheets(1).Range("B2").CurrentRegion

'Daten kopieren und einfÙgen
Intersect(rngQuelle, rngQuelle.Offset(1, 0)).Copy
ThisWorkbook.Worksheets(1).Range("A" & LetzteZeile + 1).PasteSpecial

'Arbeitsmappe schlie¤en
wbQuelle.Close SaveChanges:=False
Next cntDatei

End If

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

Betreff
Datum
Anwender
Anzeige
AW: ThisWorkbook.Worksheets
18.10.2023 10:13:27
Oberschlumpf
ich trau mich gar nich, hier zu antworten...ich lass den beitrag lieber offen
AW: ThisWorkbook.Worksheets
18.10.2023 10:13:32
peter
Hallo

Worksheets("Tabelle1")

Peter
AW: ThisWorkbook.Worksheets
18.10.2023 10:14:04
Thomas
Erledigt
Tabellenblätter in VBA ansprechen, welche Mögl. gibt es
18.10.2023 10:34:29
daniel
Hi
da es hier hauptsächlich um THISWORKBOOK geht:
du hast zwei Möglichkeiten, ein Worksheet der eigenen Mappe über den Namen anzusprechen:
a) den Indexnamen, den Indexnamen siehst du auf dem Tabellenblattreiter, im Projektbaum steht er in der Klammer und in der Eigenschaftsliste im unteren Teil.
dieser Name kann vom Anwender selbst einfach über rechtsklick auf den Reiter geändert werden,.

b) den Codenamen. Dieser steht Projektbaum vor der Klammer und ganz oben in der Eigenschaftsliste. Dieser kann nur über die Eigenschaftsliste im VBA-Editor geändert werden und ist somit "stabil"
Wenn ein Tabellenblatt neu erstellt wird, sind Codenamen und Indexname zunächst mal gleich (Tabelle1)

um ein Tabellenblatt über den Indexnamen anzusprechen, muss man zuerst das jeweilige Workbook angeben, das kann das Workbook des Makros sein:
ThisWorkbook.Sheets("Indexname")
oder das aktive Workbook:
ActiveWorkbook.Sheets("Indexname") bzw nur Sheets("Indexname")
oder ein anderes geöffnetes Workbook:
Workbooks("Dateiname.xlsb").Sheets("Indexname")

der Codename kann nur in Verbindung mit dem Eigenen Workbook verwendet werden und ersetzt somit das ThisWorkbook.("Indexname").
man schreibt dann einfach nur den Codenamen ohne einen Vorsatz.
Codebeispiel:
Leeren des Tabellenblatts über den Indexnamen: Thisworkbook.Sheets("Tabelle1").Cells.Clear
Leeren des Tabellenblatts über den Codenamen: Tabelle1.Cells.Clear
für andere Mappen kann der Codename nicht angewendet werden.

ein weiterer Unterschied ist, dass man den Indexnamen berechnen kann, dh so sowas ist möglich:
a = "Tabelle"
b = 1
ThisWorkbook.Sheets(a & b).Cells.Clear


mit dem Codenamen kann man so etwas nicht machen, den kann man nur direkt im Code verwenden.

Gruß Daniel
Anzeige
AW: ThisWorkbook.Worksheets
18.10.2023 10:14:57
Thomas
Vielen Dank, Peter.

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige