[英]How to delete sheets based on a name criteria using Google Apps Script?
我一直在尝试删除名称符合条件的现有工作表,但我一直遇到以下错误,但我找不到原因。
我正在运行的代码:
const SS = SpreadsheetApp.getActiveSpreadsheet();
const allSheets = SS.getSheets();
const category = 'Block-A';
const newSheetName = 'BOQ ' + category;
for (let a = 0; a < allSheets.length; a++) {
let existingSheetName = allSheets[a].getName();
if (existingSheetName == newSheetName) {
SS.deleteSheet(allSheets[a]);
}
}
错误: Sheet xxxxxxxxxx not found
感谢你的帮助。
安东尼奥
在阅读了对该问题的评论后,这对我有用:
首先,确保工作表名称已列出。 在我的例子中,我得到了一个clientCategories
列,它的每个值都将成为一个工作表名称:
let sheetsToDel = [];
for (let a = 0; a < clientCategories.length; a++) {
sheetsToDel.push('BOQ ' + clientCategories[a])
}
然后,我将 go 遍历所有工作表并将其删除:
for (let a = 0; a < allSheets.length; a++) {
const sheetName = allSheets[a].getName()
for (let r = 0; r < sheetsToDel.length; r++) {
if (sheetName == sheetsToDel[r]) {
SS.deleteSheet(allSheets[a]);
}
}
}
可能有很多更好的方法,但这就是我得到的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.