首页 > 解决方案 > Google 脚本编辑器:适用于除 3 个特定工作表之外的所有工作表

问题描述

目前,此代码仅应用于名为“名称”的工作表,我希望应用于除 3 张工作表(模板、摘要和计数)之外的所有工作表

代码摘要:如果单元格 A5 中的值(很快将更改为单元格范围)大于或等于 15,则发送电子邮件。

function EqualValue() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("Name");
  var value = sheet.getRange("A5").getValue();
  if(value >= "15") sendEmail(value)

};


function sendEmail(value){
  var recipient="Tester@test.com";
  var subject=" test subject " +value;
  var body="The Value is "+value;
  MailApp.sendEmail(recipient, subject, body);
};

我不确定如何最好地做到这一点。

提前致谢

标签: javascriptgoogle-apps-scriptgoogle-sheets

解决方案


要排除某些 Google 工作表选项卡并仅包含其他选项卡,您可以将要排除的工作表选项卡名称放入数组中。

获取电子表格中的所有工作表选项卡,然后遍历它们,检查每个名称。如果要检查的工作表选项卡的名称在要排除的工作表选项卡名称列表中,则不要执行任何操作。

function EqualValue() {
  var allSheetTabs,i,L,thisSheet,thisSheetName,sheetsToExclude,value;

  sheetsToExclude = ['Template','Summary','Count'];

  var ss = SpreadsheetApp.getActiveSpreadsheet();

  allSheetTabs = ss.getSheets();

  L = allSheetTabs.length;

  for (i=0;i<L;i++) {
    thisSheet = allSheetTabs[i];
    thisSheetName = thisSheet.getName();

    //continue to loop if this sheet is one to exclude
    if (sheetsToExclude.indexOf(thisSheetName) !== -1) {continue;}

    value = thisSheet.getRange("A5").getValue();
    if(value >= "15") sendEmail(value)
  }

推荐阅读