为了账号安全,请及时绑定邮箱和手机立即绑定

是否有一个函数可以从脚本中排除我的工作簿中的某些工作表

是否有一个函数可以从脚本中排除我的工作簿中的某些工作表

慕容3067478 2021-12-02 16:19:28
我正在尝试编写代码以("F2:M95")每周一次在基于时间的触发器上清除某些数据单元格。一切都如我所愿,但我注意到它正在清除我工作簿中每个工作表上那些特定单元格的数据。这是我目前拥有的功能:function LunchEmailClear() {  var app = SpreadsheetApp;  var activeSheet = app.getActive()  activeSheet.getRange("F2:M95").clear();}我可以添加什么使其仅适用于某些工作表?(即“早上的电子邮件,午餐的电子邮件”)附注。也很抱歉,如果我听起来有点傻眼,我上周才开始弄乱脚本,几乎不知道我在做什么。我很感激我能得到的任何帮助!:)
查看完整描述

2 回答

?
ABOUTYOU

TA贡献1812条经验 获得超5个赞

解释:

我们可以利用 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();

    }

  }

}


查看完整回答
反对 回复 2021-12-02
?
心有法竹

TA贡献1866条经验 获得超5个赞

这应该可以正常工作:


function LunchEmailClear() {

  //Add the list of sheets to clean

  var sheets = ['Morning Emails', 'Lunch Emails'] 

  var app = SpreadsheetApp.getActive();


  for (var i=0; i < sheets.length; i++){

    app.getSheetByName(sheets[i]).getRange("F2:M95").clear();

  }

}


查看完整回答
反对 回复 2021-12-02
  • 2 回答
  • 0 关注
  • 121 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信