Erstellen eines Excel-Skripts zum Löschen von Zeilen

Erstellen eines Excel-Skripts zum Löschen von Zeilen

Ich verwende die neue Skriptfunktion (nicht VBA) in Excel Online zur Verwendung mit Power Automate. Ich versuche, ein Skript zu erstellen, das Zeilen nach einem bestimmten Punkt löscht. Anfangs hat es funktioniert, aber dann bekomme ich immer wieder Fehler.

Verwendet habe ich die Funktionen von:

  1. getRangeEdge(Richtung, aktiveZelle),
  2. getRowIndex(),
  3. getHeaderRowRange()Und
  4. deleteRowsAt(Index, Anzahl).

Mein endgültiges Skript lautet:

function main(workbook: ExcelScript.Workbook) {
  // [Directly from link 1]
  // Get the current worksheet.
  let selectedSheet = workbook.getActiveWorksheet();

  // [Directly from link 3]
  // Get the first table on the current worksheet.
  const currentSheet = workbook.getActiveWorksheet();
  const table = currentSheet.getTables()[0];

  // [Directly from link 1]
  // Get the last used cell at the end of the column.
  // This recreates the Ctrl+Down arrow key behavior.
  let firstCell = selectedSheet.getRange("A1");
  let firstColumn = selectedSheet.getRange("A1").getRangeEdge(ExcelScript.KeyboardDirection.down);
  let cellAfter = firstColumn.getOffsetRange(1, 0);

  // [My own creation using link 2]
  // Saves the row number of the cell after the Ctrl+Down
  let FinalRow = cellAfter.getRowIndex();

  // [My own creation using link 4]
  // Deletes all rows from the last row for 2000 rows.
  // Without '-1' a blank row is left. '-1' deletes all the empty rows.
  table.deleteRowsAt(FinalRow - 1,2000);

}

Als ich das Skript zum ersten Mal ausführte, gab es keine Probleme und es funktionierte. Als ich das Skript ein zweites Mal ausführte, funktionierte es, aber ich erhielt die Fehlermeldung „Zeile 25: Tabelle deleteRowsAt: Das Argument ist ungültig oder fehlt oder hat ein falsches Format.“. Nach dem Aktualisieren stieß ich, glaube ich, auf ein drittes Problem, bei dem das Skript mir einen Fehler bei „ExcelScript“ ausgibt – aber funktioniert und mir die Fehlermeldung „Zeile 25 …“ ausgibt. Screenshot unten.

Skript zeigt „ExcelScript“- und „Zeile 25...“-Fehler„Skript zeigt Fehler „ExcelScript“ und „Zeile 25 …““

Gleicher Code, aber ohne Kommentare„Gleicher Code, aber ohne Kommentare“

Dies muss fehlerfrei funktionieren, da es beim Hinzufügen zu meinem Power Automate-Flow durch Fehler unterbrochen wird.

Mir ist bewusst, dass ich „Ausführen nach“ in Power Automate so konfigurieren kann, dass es fortgesetzt wird, auch wenn das „funktionierende“ Skript einen Fehler ausgibt. Wenn das Skript jedoch über Power Automate ausgeführt wird, „funktioniert“ es nicht, obwohl es „funktioniert“, wenn es über Excel Online ausgeführt wird.

Ich weiß Ihre Hilfe zu schätzen.

verwandte Informationen