In diesem Artikel haben wir fünf Registerblätter in Excel, welche wir in einer einzigen Tabellen zusammenzuführen möchten. Um dies zu erreichen, werden wir Office Script verwenden, um den Prozess zu automatisieren.

Schritt 1: Öffnen Sie Excel Online oder Excel Desktop

In diesem Beispiel habe ich Excel Desktop verwendet.

Schritt 2: Erstellen Sie ein neues Skript

Klicken Sie auf die Registerkarte „Automatisieren“ im Menüband und wählen Sie „Neues Skript“ aus.
Der Code-Editor wird auf der rechten Seite angezeigt.

Schritt 3: Das Skript umbenennen

Klicken Sie auf das rote Symbol mit dem Namen ‚Script‘ und benennen Sie es in ‚Bericht generieren‘ um. Drücken Sie dann die Eingabetaste.

Im Code-Editor sehen Sie ein Code-Fenster auf der rechten Seite. Kopieren Sie den folgenden Office Script-Code in den Editor und klicken Sie auf die Schaltfläche „Speichern“.

function main(workbook: ExcelScript.Workbook) {
  // Arbeitsblattnamen festlegen, von denen Tabellen abgerufen werden sollen.
  const sheetNames = ['Sheet1', 'Sheet2', 'Sheet3', 'Sheet4', 'Sheet5'];

  // Das Arbeitsblatt "Ergebnis" löschen, falls vorhanden.
  workbook.getWorksheet('Result')?.delete();

  // Ein neues Arbeitsblatt mit dem Namen "Ergebnis" für die kombinierte Tabelle erstellen.
  const newSheet = workbook.addWorksheet('Result');

  // Eine neue Tabelle mit denselben Überschriften wie bei den anderen Tabellen erstellen.
  const headerValues = workbook.getWorksheet(sheetNames[0]).getTables()[0].getHeaderRowRange().getTexts();
  const targetRange = newSheet.getRange('A1').getResizedRange(headerValues.length - 1, headerValues[0].length - 1);
  targetRange.setValues(headerValues);
  const combinedTable = newSheet.addTable(targetRange.getAddress(), true);

  // Durch jedes aufgelistete Arbeitsblatt gehen und deren Tabellen abrufen.
  sheetNames.forEach((sheet) => {"
  sheetNames.forEach((sheet) => {
    const tables = workbook.getWorksheet(sheet).getTables();
    for (let table of tables) {
      // Die Zeilen aus den Tabellen abrufen.
      let dataValues = table.getRangeBetweenHeaderAndTotal().getTexts();
      let rowCount = table.getRowCount();

      // Wenn Daten in der Tabelle vorhanden sind, diese zur kombinierten Tabelle hinzufügen.
      if (rowCount > 0) {
        combinedTable.addRows(-1, dataValues);
      }
    }
  });

  newSheet.activate();

}

Schritt 4: Skript ausführen:

Klicken Sie auf die Schaltfläche „Ausführen“ (▶), um das Skript auszuführen.

Schritt 5: Überprüfen der Ergebnisse:

Nachdem das Skript ausgeführt wurde, wird ein neues Arbeitsblatt mit dem Namen „Result“ erstellt und die Daten aus den angegebenen Blättern darin eingefügt.

Dieses Skript kombiniert Daten aus mehreren Tabellenblättern zu einem Bericht. Sie können das Skript weiter anpassen, um Berechnungen durchzuführen, den Bericht zu formatieren oder zusätzliche Datenquellen hinzuzufügen, falls erforderlich.

Zusammenfassung

Der Artikel zeigt, wie Office Scripts in Excel verwendet werden können, um Datenabfragen von mehreren Arbeitsblättern zu automatisieren. Ziel ist es, fünf Tabellen von verschiedenen Arbeitsblättern in eine einzige Tabelle zu integrieren. Der Prozess wird in drei Schritten erklärt: Öffnen von Excel Online oder Excel Desktop, Erstellen eines neuen Skripts und Umbenennen in „Generate Report“. Die Verwendung von Office Scripts vereinfacht komplexe Datenaufgaben und steigert die Produktivität.

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.

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben scrollen