我需要应用程序脚本每天以增量方式扫描每一列。如果它今天扫描一列说是A列,那么第二天应该扫描下一列B.
要触发此功能,每日计时器将在一天中的特定时间使用。 以下代码一次扫描所有列。
问题在于,每天都会触发一次应用脚本。所以它从头开始。如何存储它昨天扫描的列,并在今天增加它。
function AutoSend() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var list= new Array();
for(var j= 2; j<=29;j++){ // for Column
for(var i=5;i<=23;i++){ // for row
var value = sheet.getRange(i, j).getValue();
if(value !== "OFF"){ if(value !== "L") { if(value !== "COMP OFF") {
var EmpName= sheet.getRange(i,1).getValue();
list.push(EmpName);
}}}
}
}
Logger.log(list);
var subject= "sub";
var message = list;
MailApp.sendEmail('example@gmail.com',subject, message);
}
答案 0 :(得分:2)
您可能需要将数据存储在文档属性中。
PropertiesService.getDocumentProperties().setProperty(key, value);
您可能希望将日期用作key
的字符串,并将列号用作值。
var theColumn = 9; //To Do - get the correct column number
var todaysDate = new Date().toString();
Logger.log('todaysDate: ' + todaysDate);
todaysDate = todaysDate.slice(0,15); //Remove time off the end
Logger.log('todaysDate: ' + todaysDate);
PropertiesService.getDocumentProperties().setProperty(todaysDate, theColumn);
var theColumnForTheDate = PropertiesService.getDocumentProperties()
.getProperty(todaysDate);
Logger.log('theColumnForTheDate: ' + theColumnForTheDate);