Good Day!!
Have a data dump that comes from one of my systems into excel. The size of the data can vary from 200 rows to 250,000 rows. So to avoid some load restrictions, I have found the best way to manipulate/clean this data is avoid creating a table, and to use Excel's built-in filters, and one by one, filter to make the data to be deleted visible...then delete it. Works perfectly!
However, this issue is, the row counts are always different. When I have true ranges defined, the script runs perfectly (A2:L20000). However, when I attempt to define a usedRange, it gives me an error noting the argument is invalid. I can not figure out how to overcome this.
this errors out on the 10th line selectedSheet.getRange(usedRange).delete(ExcelScript.DeleteShiftDirection.up);
which is the same as the 16th line, so I am guessing that will error out also.
Here is the snippet of the code.
Any help or guidance would be appreciated!
function main(workbook: ExcelScript.Workbook) {
let selectedSheet = workbook.getActiveWorksheet();
let usedRange = selectedSheet.getUsedRange();
console.log(usedRange);
// Toggle auto filter on selectedSheet
selectedSheet.getAutoFilter().apply(selectedSheet.getRange("A1:L1"));
// Apply values filter on selectedSheet
selectedSheet.getAutoFilter().apply(selectedSheet.getAutoFilter().getRange(), 10, { filterOn: ExcelScript.FilterOn.values, values: ["0"] });
// Delete visable on selectedSheet
selectedSheet.getRange(usedRange).delete(ExcelScript.DeleteShiftDirection.up);
// Clear auto filter on selectedSheet
selectedSheet.getAutoFilter().clearCriteria();
// Apply values filter on selectedSheet
selectedSheet.getAutoFilter().apply(selectedSheet.getAutoFilter().getRange(), 6, { filterOn: ExcelScript.FilterOn.values, values: ["Expense", "Income"] });
// Delete range visable on selectedSheet
selectedSheet.getRange(usedRange).delete(ExcelScript.DeleteShiftDirection.up);
// Clear auto filter on selectedSheet
selectedSheet.getAutoFilter().clearCriteria();