Google apps script 如何从脚本中排除某些工作表? 函数sheetnames(){ var out=新数组() var sheets=SpreadsheetApp.getActiveSpreadsheet().getSheets(); var exclude=[“Contractors”,“All Group Bids”,“About Me”,“Bid Summary”]//这些是我不想要的工作表名称 var groupsheets=(sheets!=exclude);//我不确定这是否格式正确 对于(var i=0;iGoal:

Google apps script 如何从脚本中排除某些工作表? 函数sheetnames(){ var out=新数组() var sheets=SpreadsheetApp.getActiveSpreadsheet().getSheets(); var exclude=[“Contractors”,“All Group Bids”,“About Me”,“Bid Summary”]//这些是我不想要的工作表名称 var groupsheets=(sheets!=exclude);//我不确定这是否格式正确 对于(var i=0;iGoal:,google-apps-script,google-sheets,Google Apps Script,Google Sheets,在排除数组中找不到工作表名称的返回数组 修改代码: 函数sheetNames(){ var out=[]; var sheets=SpreadsheetApp.getActiveSpreadsheet().getSheets(); var exclude=[“承包商”、“所有集团投标”、“关于我”、“投标摘要”]; 对于(i=0;i

在排除数组中找不到工作表名称的返回数组


修改代码:
函数sheetNames(){
var out=[];
var sheets=SpreadsheetApp.getActiveSpreadsheet().getSheets();
var exclude=[“承包商”、“所有集团投标”、“关于我”、“投标摘要”];
对于(i=0;i

说明: 我使用
array.indexOf()
遍历了图纸数组,以比较两者。返回
-1
(不匹配)的任何图纸都将添加到数组
out


参考:

以下是一个使用es6+功能的更简洁版本。这并不一定比使用命令式循环“更好”,但我总是发现在使用命令式循环时更容易出错:

function sheetNames() {
  var out = [];
  var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
  var exclude = ["Contractors", "All Group Bids", "About Me", "Bid Summary"];
  for (i = 0; i < sheets.length; i++) {
    if (exclude.indexOf(sheets[i].getName()) === -1) {
      out.push(sheets[i].getName());
    }
  }
  return out;
}

请复制粘贴您的代码,而不是将其作为图像。我已直接添加了代码。很抱歉,第一次不接受格式设置。我对代码也不太了解。我通过谷歌脚本函数将其组合起来,以执行我想要的小任务。我感谢您提供的任何帮助!谢谢,当我粘贴时输入并保存所有的工作表名称仍然是输出的。您的过程比我所做的更有意义。请确保您的
exclude
数组具有准确的工作表名称,没有多余的空格和大小写是完美的。当我在全新的工作表上测试它时,它确实有效。但是,它在我需要的工作表上不起作用。所有的工作表都无效es是正确的。我还有下面的函数在另一个脚本中运行。这会影响它吗?你使用该函数排除工作表的目的是什么?你能显示你的其余代码吗?如果某个特定单元格被更新,另一个代码会自动更改工作表的名称。很抱歉,碰撞了旧线程。这对我不起作用,你能帮助我吗?
function sheetNames() {
  var out = [];
  var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
  var exclude = ["Contractors", "All Group Bids", "About Me", "Bid Summary"];
  for (i = 0; i < sheets.length; i++) {
    if (exclude.indexOf(sheets[i].getName()) === -1) {
      out.push(sheets[i].getName());
    }
  }
  return out;
}
function sheetNames() {
  let excluded = ["Contractors", "All Group Bids", "About Me", "Bid Summary"];
  return SpreadsheetApp
    .getActiveSpreadsheet()
    .getSheets()
    .filter(s => !excluded.includes(s));
}