首页 > 解决方案 > 是否有从脚本中排除我的工作簿中某些工作表的功能

问题描述

我正在尝试编写代码以("F2:M95")每周一次清除基于时间的触发器上的某些数据单元格。一切都按我的意愿工作,只是我注意到它正在清除我工作簿中每张工作表上那些特定单元格的数据。

这是我目前拥有的功能:

function LunchEmailClear() {
  var app = SpreadsheetApp;
  var activeSheet = app.getActive()
  activeSheet.getRange("F2:M95").clear();
}

我可以添加什么以使其仅适用于某些工作表?(即“早间邮件、午间邮件”)

PS。也很抱歉,如果我听起来有点傻眼,我上周才开始搞乱脚本,几乎不知道我在做什么。我很感激我能得到的任何帮助!:)

标签: javascriptgoogle-apps-scriptgoogle-sheets

解决方案


解释:

我们可以利用 JavaScriptArray.indexOf()方法来实现这一点。

在下面的脚本中,我有一个我们想要包含的工作表数组并将其定义为var include. for然后,我们可以使用运行if语句的循环将此数组与工作表名称进行比较。这会使用 . 根据我们的包含数组检查工作表名称Array.indexOf()


例子:

function emailClear() {
  var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();

  //list sheets to include here
  var include = ['Morning Emails', 'Lunch Emails'];

  for (var i = 0; i < sheets.length; i++) {
    if (include.indexOf(sheets[i].getName()) > -1) {
      sheets[i].getRange("F2:M95").clear();
    }
  }
}

参考:


推荐阅读