函数重新计算每次打开工作表时,我只希望它在编辑时重新计算

时间:2015-09-26 13:27:25

标签: javascript function google-apps-script google-sheets timestamp

function timestamp() {
return new Date()
}

每次打开工作表时,该功能都会重新计算。我只想让它在编辑时重新计算。 我曾试图搞乱“onEdit”,但我永远无法让它发挥作用。我也尝试了“当前项目触发器”,但似乎没有解决问题。我为这个问题的简单性道歉,我根本无法找到或找出答案。 Google表格脚本 https://docs.google.com/spreadsheets/d/1-Ix9LUmMYNqWnz0mB2PAg9ocJ-TwszqHRbqxAchcxhc/edit#gid=0

1 个答案:

答案 0 :(得分:0)

它看起来(基于您对问题的评论),就像您已经创建了一个自定义公式并将其放在一个单元格中。如果是这种情况(意味着你在单元格中实际上有= timestamp()),那么它将始终在打开和编辑时重新计算。

这就是公式(标准公式和自定义公式)的工作原理。当您开始在电子表格中包含太多公式并且它开始变慢甚至无法正确加载时,您会注意到这一点。

如果你想要只在编辑时更新的东西,你必须编写一个完全相同的函数,然后设置一个在编辑时调用它的触发器。

例如,此函数会将当前日期放在当前电子表格第一张的单元格A1中:

function setTimestamp()
{
    var thisSS = SpreadsheetApp.getActiveSpreadsheet();
    var firstSheet = thisSS.getSheets()[0];
    var firstCell = firstSheet.getRange(1, 1);

    firstCell.setValue(new Date());
}

此类功能仅在您调用时运行,因此您可以将触发器设置为您想要的任何内容。显然,您必须弄清楚如何选择希望显示日期的单元格。