Google表格脚本编写,如何在googel表格中阻止自动更新或重新记录我的时间戳?

时间:2017-04-08 00:05:08

标签: google-apps-script google-sheets

我附上了我在谷歌中运行的电子表格的副本。这个概念是当有人开始挑选订单时,他们会在I3中输入他们的名字并开始他们的时间。一旦完成,他们将在J3中键入他们的名字,每个名称都会在下面生成一个时间戳,从而导致总持续时间。之后它将考虑百分比。

问题是时间戳似乎随机更新而没有提示这样做。它似乎是在打印或重新打开时。这将导致时间和百分比的不准确。非常感谢任何帮助

似乎我应该编写一个脚本来满足这种需求,但我没有丝毫关于如何做到这一点。我被谷歌文档帮助论坛的回复定向到这个论坛

enter link description here

2 个答案:

答案 0 :(得分:0)

我不认为您可以选择更新或重新计算的单元格(如果我错了,请告诉我。)

非优化的解决方法(也许有些专家有更好的解决方案):

long

onEdit(e)功能是Google电子表格中的一个简单触发器。它会在每次编辑单元格时触发。

在上面的代码中,我们迭代检查每个元素是否添加了名称。如果是这样,代码将在刚添加的名称下面设置日期和时间。由于您在一个时刻设置了值,因此没有自动更新会修改这些时间。

对于此变通办法,您需要删除放在要求时间戳的单元格上的公式(即I4和J4)。你可以保留计算时间差异的单元格,它们应该没有问题。

答案 1 :(得分:0)

在脚本编辑器中粘贴下面的脚本并保存。

function onEdit(e) {
if (e.range.rowStart % 3 != 0 || [9, 10].indexOf(e.range.columnStart) == -1) return;
var o = e.range.offset(1, 0);
if (!o.getValue()) o.setValue(new Date())
}

不要通过单击脚本编辑器中的播放按钮来运行脚本。而不是返回任何选项卡,清除现在具有= now()公式的所有单元格并输入名称。查看时间戳是否出现。