我正在尝试编写代码,以每周一次基于时间的触发器清除某些数据单元("F2:M95")
。一切正常,但我注意到它正在清除工作簿中每个工作表上特定单元格中的数据。
这是我目前拥有的功能:
function LunchEmailClear() {
var app = SpreadsheetApp;
var activeSheet = app.getActive()
activeSheet.getRange("F2:M95").clear();
}
我可以添加些什么,使其仅适用于某些图纸? (即“早晨电子邮件,午餐电子邮件”)
PS。如果我听起来有些傻眼,也很抱歉,上周我才开始弄乱脚本,对自己的工作几乎一无所知。感谢您能提供的任何帮助! :)
答案 0 :(得分:1)
我们可以利用JavaScript Array.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();
}
}
}
答案 1 :(得分:1)
这应该可以正常工作:
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();
}
}