【发布时间】:2022-09-26 02:58:46
【问题描述】:
再会!!
将来自我的一个系统的数据转储到 excel 中。数据的大小可以从 200 行到 250,000 行不等。因此,为了避免一些负载限制,我发现操作/清理这些数据的最佳方法是避免创建表,并使用 Excel 的内置过滤器,并逐个过滤以使数据被删除可见...然后删除它。完美运行!
但是,这个问题是,行数总是不同的。当我定义了真实范围时,脚本运行完美(A2:L20000)。但是,当我尝试定义 usedRange 时,它给我一个错误,指出参数无效。我不知道如何克服这一点。
这个错误出现在第 10 行 selectedSheet.getRange(usedRange).delete(ExcelScript.DeleteShiftDirection.up); 与第 16 行相同,所以我猜这也会出错。
这是代码的sn-p。
任何帮助或指导将不胜感激!
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();
标签: excel office-scripts