
Я использую новую функциональность сценариев (не VBA) в Excel Online для использования с Power Automate. Я пытаюсь создать сценарий, который удаляет строки после заданной точки. Поначалу это работало, но затем я продолжаю получать ошибки.
Я использовал функции из:
- getRangeEdge(направление, активная ячейка),
- получитьИндексСтроки(),
- получитьHeaderRowRange()и
- deleteRowsAt(индекс, количество).
Мой окончательный сценарий:
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);
}
Когда я впервые запустил скрипт, у меня не возникло никаких проблем, и он работает. Во второй раз, когда я запустил скрипт, он заработал, но я получил сообщение об ошибке "Line 25: Table deleteRowsAt: The argument is invalid or missing or has an irregular format.". После обновления, как мне кажется, я столкнулся с третьей проблемой, когда скрипт выдает ошибку в "ExcelScript" - но работает и выдает ошибку "Line 25...". Скриншот ниже.
«Скрипт, показывающий ошибки «ExcelScript» и «Строка 25...»»
«Тот же код, но без комментариев»
Мне нужно, чтобы это работало без ошибок, потому что когда я добавляю это в свой поток Power Automate, ошибки приводят к его поломке.
Я понимаю, что могу настроить «запуск после» в Power Automate, чтобы продолжить, даже если «рабочий» скрипт выдает ошибку. Однако при запуске скрипта через Power Automate он не «работает», хотя запуск его через Excel Online «работает».
Я ценю вашу помощь.