【问题标题】:Google Apps Script Triggers For Spreadsheets电子表格的 Google Apps 脚本触发器
【发布时间】:2014-08-28 06:25:53
【问题描述】:

我为我的一个班级创建了一个电子表格来记录分数。班级中有一个排行榜,如果学生在排行榜上保持领先 7 天或更长时间,他们会因表现出色而获得奖励。

我为此设置了 4 列。第一个是 MARK 列。第二个是他们的分数。第三个是他们获得高分的日期。第四个是自获得高分以来经过的 AMOUNT_OF_DAYS。如果我输入他们的结果,我就会运行一个脚本。它会检查它是否是高分,并在 DATE 列中标记今天的日期。 AMOUNT_OF_DAYS 列是一个简单的公式,用于计算从获得高分后经过的天数。一旦 AMOUNT_OF_DAYS 值为 7 或更大,我希望自动填充 MARK 列。我尝试了“更改”触发事件,但我认为这不是它的目的。我不认为 onEdit 会起作用,因为我认为只有在我手动操作电子表格时才会触发。有任何想法吗?提前致谢。

【问题讨论】:

标签: google-apps-script google-sheets


【解决方案1】:

您的电子表格是这样的吗?

您可以在单元格中放置条件公式:

=if(D2>=7,"bonus Time!",0)

上述公式如果D2中的单元格大于等于7则输入文本bonus Time!,否则输入值0。

您已经有一个脚本在您输入数据时运行,然后检查它是否是高分。我不明白为什么你不能扩展该脚本来检查 AMOUNT_OF_DAYS?

【讨论】:

  • 这就是问题所在。假设我班上有两个学生:Marty 和 Sally。假设 Marty 的高分是 8。他将这个分数保持了 10 天,这意味着他获得了加分。如果莎莉第二天得了 10 分怎么办?按照你的方式做事会导致 Marty 的奖金被抹去,尽管他仍然应该获得奖金,因为在课堂上的某个时刻,他完成了 7 天或更长时间保持高分的挑战。看到问题了吗?
  • 我添加了一张电子表格的图片。我使用 Windows Snipping Tool 将计算机屏幕的一部分保存为 JPEG 图片文件。您的电子表格看起来像图片吗?
  • 是的,看起来和那个差不多。
  • 我想你需要与福尔摩斯取得联系。
【解决方案2】:

这是我为解决这个问题所做的:

我在脚本中创建了一个函数,该函数负责检查 THE_AMOUNT_OF_DAYS 列中的任何值是否大于或等于 7。在脚本编辑器的“资源”菜单下,转到“所有触发器”,然后然后添加一个触发器。指定您要运行的函数。确保它是“时间驱动”事件而不是“来自电子表格”事件。将时间设置为您希望脚本函数触发的时间间隔。

需要注意的一点是 Browser.msgbox() 函数在通过触发器触发时似乎不起作用,但是当您从脚本编辑器手动运行该函数时它会起作用。我提到这一点的唯一原因是因为我确信我们中的许多人都使用它来调试我们的脚本。

特别感谢@teatimer 为我指明了正确的方向:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多