每次我打开 sheet 时函数都会重新计算,我只希望它在编辑时重新计算

function recalculates every time i open the sheet, I only want it to recalculate on edit

function timestamp() {
return new Date()
}

每次我打开 sheet 时,函数都会重新计算。我只希望它在编辑时重新计算。 我试图弄乱 "onEdit" 但我永远无法让它工作。我也试过 "current project triggers" 但这似乎不能解决问题。对于问题的简单性,我深表歉意,我根本找不到或想不出答案。 Google sheets 脚本 https://docs.google.com/spreadsheets/d/1-Ix9LUmMYNqWnz0mB2PAg9ocJ-TwszqHRbqxAchcxhc/edit#gid=0

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

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

如果您想要只在编辑时更新的内容,您必须编写一个函数来完成此操作,然后设置一个在编辑时调用它的触发器。

例如,此函数会将当前日期放入当前跨页第一个 sheet 的单元格 A1 中sheet:

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

    firstCell.setValue(new Date());
}

这种函数只会运行当你调用它的时候,所以你可以把触发器设置成任何你想要的。显然,您必须弄清楚如何 select 您希望日期出现的单元格。