我目前有一个与其他4个人共享的主文档。现在,我有一个公式,当列K具有“已关闭”或“同一天关闭”时,时间标记列L与今天的日期。我们发现的是,有时候时间戳是不准确的,并且会反映今天关于上周发生的结束日期。我相信这是因为有这么多人访问这个,对吗?这是我目前正在使用的公式:
=IF(OR(K34="Closed",K34="Same Day Close"),TODAY(),"")
所以我认为最好先编写一个脚本,这样时间戳就不会受到多个用户在不同时间访问文档的影响。它正在发挥作用,但它并没有完全按照我的需要去做。这是脚本:
function onEdit(e) {
var ss = e.source;
var activatedSheetName = ss.getActiveSheet().getName();
var activatedCell = ss.getActiveSelection();
var activatedCellRow = activatedCell.getRow();
var activatedCellColumn = activatedCell.getColumn();
var activatedCellValue = activatedCell.getValue();
var greg = ss.getSheetByName("Greg"); // source sheet
var greg = ss.getSheetByName("Greg"); // target sheet
// if the value in column D is "Approved", move the row to target sheet
if (activatedSheetName == greg.getName() && activatedCellColumn == 11 && activatedCellValue == "Closed") {
// add date and time of when approved to target row in column E
greg.getRange('l' + activatedCellRow).setValue(Date(TODAY));
}
}
以下是我不需要做的事情:
提前非常感谢!这是我第一次尝试实现一个脚本,而且我已经玩了几天而无济于事。我很感激你的时间。
答案 0 :(得分:0)
试试这个脚本:
function onEdit(e) {
if (e.range.columnStart !== 11 || e.value !== 'Close' && e.value !== 'Same Day Close') return;
e.range.offset(0, 1)
.setValue(new Date())
}
注意:为了摆脱时间,只需将列L格式化为' DATE' (通过菜单中的123按钮)。