function timestamp() {
return new Date()
}


每当我打开工作表时,该函数都会重新计算。我只希望它在编辑时重新计算。
我试图弄乱“ onEdit”,但我永远无法使其正常工作。我还尝试了“当前项目触发器”,但这似乎无法解决问题。抱歉,为了简单起见,我找不到或无法找到答案。
Google表格脚本
https://docs.google.com/spreadsheets/d/1-Ix9LUmMYNqWnz0mB2PAg9ocJ-TwszqHRbqxAchcxhc/edit#gid=0

最佳答案

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

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

如果您想要仅在编辑时更新的内容,则必须编写一个完全可以执行此操作的函数,然后设置一个在编辑时调用它的触发器。

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

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

    firstCell.setValue(new Date());
}


此类函数仅在调用时运行,因此您可以将触发器设置为所需的任何值。显然,您必须弄清楚如何选择要显示日期的单元格。

关于javascript - 每次打开工作表时函数都会重新计算,我只希望它在编辑时重新计算,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32797710/

10-09 19:07