根据单元格值插入或删除时间戳
Posted
技术标签:
【中文标题】根据单元格值插入或删除时间戳【英文标题】:Insert or delete a timestamp based on cell value 【发布时间】:2022-01-21 15:31:07 【问题描述】:使用此脚本,我可以根据 col E 中的“SI”在 col G 中自动创建时间戳。 现在我会这样: 1 - 当我删除 col E 中的现有值“SI”时,必须删除时间戳 2 - 因此,如果我在 col E 中输入与“SI”不同的值,则必须删除时间戳 我该如何继续?
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 的回答,我已经用这个编辑了脚本,但问题是当在 col G 中选择“URGENTE”时,col E 中的值变为“URGENTE”,但是如果我在带有“SI”的 col G 日期格式仅为 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');
【问题讨论】:
【参考方案1】:我相信你的目标如下。
将SI
的值放入“E”列时,您希望将当前日期放入“G”列。
当SI
的值没有放到“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();
在此示例中,日期对象以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')
。
【讨论】:
我已经更新了问题,请看顶部。 @Gavis 感谢您的回复。关于您更新的问题,我又添加了一个示例脚本。你能确认一下吗?如果我误解了您更新的问题并且没有用,我深表歉意。 完美!效果很好 @Gavis 感谢您的回复和测试。很高兴您的问题得到解决。以上是关于根据单元格值插入或删除时间戳的主要内容,如果未能解决你的问题,请参考以下文章