1

因此,我在我的 googledoc 电子表格中使用了一个脚本,该脚本通过一列并计算指定格式的出现次数。(即在我的电子表格“=myFunction()”中)

该功能工作正常,但我的问题是尽管设置了触发器来运行脚本“onEdit”,但它从不这样做。每次我希望它在我的电子表格上更新时,我都必须打开脚本并保存它。

我一直在寻找几个小时,但似乎没有人有我的问题。通知没有发送错误。我的函数的代码(尽管我认为它不是非常相关)是:

function CountIfNotStrikeThrough2()
{

  var ss = SpreadsheetApp.getActiveSpreadsheet(); 
  var mysheet = ss.getActiveSheet();


  var mydatarange = mysheet.getRange(1,1,390,1);
  var numRows = mydatarange.getLastRow();
  var rowindex = mydatarange.getRowIndex();
  var columnindex = mydatarange.getColumnIndex();

  var total =0;

  for(i=rowindex;i<=numRows;i++)
  {
    if(mydatarange.offset(i-1, columnindex-1, 1, 1).isBlank() != true && mydatarange.offset(i-1, columnindex-1, 1, 1).getFontLine() != "line-through")
    {

      total++;
    }    
  }

  return total;
}
4

1 回答 1

1

我知道这里有一个线程,其中包含 onEdit 触发器何时未激活的完整列表。(这里)例如,如果您设置数据验证并从验证中的值列表中选择一个项目,它不会触发 onEdit 函数。

除此之外,你能尝试一个简单的触发器而不是可安装的吗?也就是说,不要将 CountIfNotStrikeThrough2() 显式关联到 onEdit 触发器,而是尝试将函数重命名为“onEdit()”,看看是否有效。这会创建一个隐式或简单的触发器。过去,我在可安装触发器和简单触发器方面遇到了麻烦。

另外,请分享您为测试触发器而执行的确切操作。

参考: https ://developers.google.com/apps-script/understanding_triggers

于 2013-07-19T21:32:55.610 回答