根据单元格值插入或删除时间戳



有了这个脚本,我可以在col G中基于";SI";在col E.中。
现在我会说:
1-当我删除一个现有的值时"SI";在col E中,时间戳必须被删除
2-因此,如果我将一个不同于";SI";在col E中,必须删除时间戳
如何继续?

function onEdit(e){
var s = SpreadsheetApp.getActiveSheet();
if( s.getName() == "STAMPA2" )
if(e.range.columnStart == 5 && e.value === 'SI'){
e.range.offset(0,2).setValue(new Date());
}
}

更新:根据Cooper和Tanaike的回答,我用这个剧本编辑了剧本,但问题是,当一个选择"紧急";在列G中,列E中的值变为"0";"紧急";,但是如果我用"0"改变列G中的值;SI";日期格式只有dd/mm/yyyy,而不是dd/mm/yyyy-HH:mm(我需要(
如何解决?

function onEdit(e) {
var s = e.range.getSheet();
if (s.getName() == "STAMPA2" && e.range.columnStart == 5) {
if (e.value == 'SI') {
e.range.offset(0, 3).setValue(new Date());
} else {
e.range.offset(0, 3).setValue('');
}
if (e.value == 'URGENTE') {
e.range.offset(0, 3).setValue('URGENTE');
}
}
} 

我相信您的目标如下。

  • 当CCD_ 1的值被放入列"0"时;E";,你想把当前日期放在";G">
  • 当CCD_ 2的值没有被放入列"0"时;E";,如果要删除列"的值;G">

在这种情况下,下面的修改如何?

修改的脚本:

function onEdit(e) {
var { range, value } = e;
var s = range.getSheet();
if (s.getName() == "STAMPA2" && range.columnStart == 5) {
range.offset(0, 2).setValue(value === 'SI' ? new Date() : "");
}
}

function onEdit(e) {
var { range } = e;
var s = range.getSheet();
if (s.getName() == "STAMPA2" && range.columnStart == 5) {
range.offset(0, 2).setValue(range.getValue() === 'SI' ? new Date() : "");
}
}

已添加:

对于您更新的问题,下面的示例脚本怎么样?

function onEdit(e) {
var { range, value } = e;
var s = range.getSheet();
if (s.getName() == "STAMPA2" && range.columnStart == 5) {
var r = range.offset(0, 2);
if (value == 'SI') {
r.setValue(new Date()).setNumberFormat('dd"/"MM"/"yyyy" "HH":"mm');
} else if (value == 'URGENTE') {
r.setValue('URGENTE');
} else {
r.clearContent();
}
}
}
  • 在此示例中,date对象被设置为dd"/"MM"/"yyyy" "HH":"mm的日期格式
  • 如果要将日期作为字符串,也可以使用r.setValue(Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "dd/MM/yyyy HH:mm"))而不是r.setValue(new Date()).setNumberFormat('dd"/"MM"/"yyyy" "HH":"mm')

最新更新