繁体   English   中英

如何使用 Google Apps 脚本根据名称标准删除工作表?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM