首页 > 解决方案 > 我想制作一个谷歌脚本,每分钟将运行总数加 1,永远。利用以前的帖子,我觉得我很接近

问题描述

var x = 0
Logger.log(x)

function myFunction(){
var y = x+1
Logger.log(y)
x = y
Logger.log(x)
}


// execute this only and once
function createTrigger(){
ScriptApp.newTrigger(myFunction())
  .timeBased()
  .everyMinutes(1)
  .create();
}

以上是我的代码。在我的脑海中,它将 x 设置为 0,并记录下来。然后引入函数 myFunction 并将 x 加 1 并记录它。

然后根据我得到的这个底部文本的提示,应该每分钟都会发生这种情况。它没有。

这是执行日志: LOG PHOTO

我也试过这样:像14差异

标签: google-apps-scriptgoogle-sheetsgoogle-sheets-formula

解决方案


修改点:

  • 在您的脚本中,x = 0每次运行都会声明该变量。以此,x不成长。我认为这可能是您的问题的原因。在这种情况下,如何使用Properties Service
  • 您的脚本ScriptApp.newTrigger(myFunction())需要修改。functionNameofnewTrigger(functionName)是字符串值。

当以上几点反映到您的脚本时,它变成如下。

修改后的脚本:

function myFunction() {
  var p = PropertiesService.getScriptProperties();
  var x = p.getProperty("x");
  if (x) {
    Logger.log(Number(x))  // Value before 1 is added.
    x = Number(x) + 1;
  } else {
    x = 1;  // or x = 0;
  }
  Logger.log(x) // Value after 1 was added.
  p.setProperty("x", x);
}

// execute this only and once
function createTrigger() {
  ScriptApp.newTrigger("myFunction")
    .timeBased()
    .everyMinutes(1)
    .create();
}
  • 运行时createTrigger(),为 的功能安装时间驱动触发器myFunction()
  • 运行时myFunction(), 的值x通过增加 的数量而增长1

参考:


推荐阅读