我有一个脚本,当“列X”不为空时,会为“列Y”加时间戳。我正在尝试添加一种偶然性,如果脚本缺少时间戳,则该脚本将仅使时间戳“ Y列”成为可能。当前,该脚本将覆盖现有时间戳。
function markComplete() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = ss.getSheetByName('Sheet1');
var startingRow = 2;
var maxRow = s.getLastRow();
var data = s.getRange(startingRow, 1, maxRow, 29).getValues();
var dateSent = new Date();
for (var i = 0; i < data.length; ++i) {
var row = data[i];
var employee = row[23];
var timestamp = row[29];
if (employee != '') {
s.getRange(i+2,29).setValue(dateSent);
}
}
}
我尝试将if语句修改为if (employee != '' && timestamp == '')
,但这只会导致脚本不执行任何操作。
答案 0 :(得分:1)
尝试一下:
我对此进行了测试,并且不会覆盖旧的时间戳。
function runOne() {
var ss=SpreadsheetApp.getActive();
var sh=ss.getSheetByName('Sheet1');
var rg=sh.getRange(2,1,sh.getLastRow()-1,sh.getLastColumn());
var vA=rg.getValues();
for (var i=0;i<vA.length;i++) {
if(vA[i][23] && !vA[i][28]) {//columns x and y
sh.getRange(i+2,29).setValue(Utilities.formatDate(new Date(),Session.getScriptTimeZone(), "E MMM dd, yyyy HH:mm:ss"));//column y
}
}
}