Einführung
Wenn Excel-Dateien aus einem externen System generiert werden, dann kann vorkommen, dass das externe System den Blattnamen automatisch definiert. Beispielsweise kann der Blattname als Datum oder als Zeit Stempel generiert werden. Die herkömmliche Methode, Ihren Code manuell zu ändern, um diese ständig wechselnden Blattnamen zu berücksichtigen, erfordert nicht nur wertvolle Zeit, sondern bietet auch Raum für Fehler.
Keine Sorge, es gibt einen besseren Ansatz, um diese Schwierigkeit anzugehen. Die Technik, die Synchronisierung Ihres Codes mit den sich dynamisch ändernden Blattnamen in Ihrer Datenquelle zu automatisieren, wird in diesem Artikel erläutert. Durch die Befolgung dieser Empfehlungen können Sie sich von der lästigen Aufgabe verabschieden, die Blattnamen jedes Mal zu ändern, wenn Sie Ihre Abfrage neu laden.
Öffnen Sie den Power Query-Editor in Excel
- Um den Power Query-Editor zu öffnen, wählen Sie eine Zelle in Ihrer Abfragetabelle aus und klicken Sie dann auf Abfrage > Bearbeiten.
- Dadurch wird nun der Power Query-Editor geöffnet.
- Klicken Sie in den Abfrageeinstellungen auf Quelle.
Hinweis: In unserer Datenquelle („C:\Users\GIGABYTE\Desktop\data sheet.xlsx “) haben wir zwei Blätter und dies sind die Blätter „Sales1“ und „Sales2“, die wir in der Spalte „Name“ sehen können.
Fügen Sie eine Indexspalte in Power Query hinzu
- Gehen Sie nun zu „Spalte hinzufügen“ > „Indexspalte“ > „Von 1“ (Von 1 bedeutet, dass die Nummerierung bei 1 beginnt. Wenn Sie „Von 0“ wählen, beginnt die Nummerierung bei 0). In diesem Beispiel wird „Von 1“ verwendet.
- Am Ende der Abfrage wird eine Spalte mit dem Namen Index hinzugefügt. Dies dient als Indexnummer der Blätter in Ihrem Datenquellenblatt.
- Klicken Sie auf Start > Erweiterter Editor
- Ersetzen Sie in der dritten Codezeile diesen Text
#“Added Index“{[Item=“Sales1″,Kind=“Sheet“]}[Data],
Zu
#“Added Index“{[Index=1]}[Data],Klicken Sie dann auf „Fertig“.
Der Index=1 bezieht sich auf das Blatt Sales1 der Datenquelle
- Klicken Sie auf Schließen und Laden
Aktualisieren Sie Ihre Abfragetabelle
Versuchen Sie nun, den Blattnamen der Datenquelle zu ändern und Ihre Abfragetabelle zu aktualisieren. Jetzt können wir sehen, dass der Code auch dann noch funktioniert, wenn sich der Name des Datenquellenblatts ändert. Dies liegt daran, dass wir anstelle des Blattnamens die Indexspalte verwendet haben, um zu bestimmen, welches Blatt verwendet werden soll.
Benötigen Sie einen VBA Programmierer?
Wir als exact construct programmieren mit einem Team von rd. 20 Mitarbeitern seit über 10 Jahren Excel-Tools. Wir sind ein Nischenanbieter der spezialisiert auf Makros/VBA-Codes ist. Daneben unterstützen wir auch als 3rd Level Support die IT-Abteilungen rund um Probleme bei MS Office (Excel, Word, PowerPoint, etc.).
Haben Sie ein Excel-Problem? Benötigen Sie einen Makro-Programmierer? Rufen Sie uns unverbindlich an +41 52 511 05 25 oder kontaktieren Sie uns via Kontaktformular.
Hallo zusammen,
weil ich nun keine .xlsx, sondern eine .csv-Datei habe, ist der zu editierender Code leider nicht mehr vorhanden, weshalb sich die Code-Zeile nur bei der .xlsx Datei befindet. Nun stelle ich mir die Frage, welche Zeile müsste ich editieren, um auch eine CSV-Datei im Tabellenblattnamen die dynamische Definition des Arbeitsblatts zu ignorieren.
let
Quelle = Csv.Document(File.Contents(„U:\Eigene Dateien\1_Import_MBB\OSx.csv“),[Delimiter=“;“, Columns=2, Encoding=1252, QuoteStyle=QuoteStyle.None]),
#“Höher gestufte Header“ = Table.PromoteHeaders(Quelle, [PromoteAllScalars=true]),
…
#“Hinzugefügter Index“ = Table.AddIndexColumn(#“Umbenannte Spalten“, „Index“, 1, 1, Int64.Type)
in
#“Hinzugefügter Index“