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

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

function timestamp() {
return new Date()
}

每次我打开工作表时,该函数都会重新计算。我只希望它在编辑时重新计算。 我试图搞乱“onEdit”,但我永远无法让它工作。我也尝试过“当前项目触发器”,但这似乎并不能解决问题。我很抱歉,由于问题很简单,我根本找不到或弄清楚答案。 谷歌表格脚本 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/

相关文章:

c++ - C++ 中对 class::function 的另一个 undefined reference

google-apps-script - 如果 var 是数字,则用于脚本

javascript - Google Apps 脚本 - 从另一个工作表导入工作表值

javascript - 在类型上输入自动对焦

javascript - 更快的 SVG 路径操作

Javascript 用单反斜杠替换双反斜杠

使用 JavaScript 在 MVC 中调用 C# 函数

c# - 在 C# 和 VB.NET 中传递参数

spreadsheet - 将电子表格连接到 Web 数据库的最佳方法

javascript - 用 jasmine 跟踪函数执行时间