Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script GoogleSheet脚本引发问题_Google Apps Script_Google Sheets_Google Sheets Api - Fatal编程技术网

Google apps script GoogleSheet脚本引发问题

Google apps script GoogleSheet脚本引发问题,google-apps-script,google-sheets,google-sheets-api,Google Apps Script,Google Sheets,Google Sheets Api,我试图为google sheet创建一个计算特定颜色的脚本,它似乎工作得很好,但当我试图触发它时,我开始遇到问题 我用OnEdit()事件创建了触发器,但每次编辑表时都会出现“interval not found”异常。因此,如果我想让它正确工作,我必须将公式剪切并粘贴到表上(因为触发器不工作) 这是我的代码: function countColor(countRange) { var sheet = SpreadsheetApp.getActiveSpreadsheet().getActive

我试图为google sheet创建一个计算特定颜色的脚本,它似乎工作得很好,但当我试图触发它时,我开始遇到问题

我用OnEdit()事件创建了触发器,但每次编辑表时都会出现“interval not found”异常。因此,如果我想让它正确工作,我必须将公式剪切并粘贴到表上(因为触发器不工作)

这是我的代码:

function countColor(countRange) {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var range = sheet.getRange(countRange);

var rangeWidth = range.getWidth();

var bg = range.getBackgrounds();
var score = 0;

for (var i = 0; i < rangeWidth; i++)
{
  if (bg[0][i] == "#38761d")
  {
    score += 1;
  }      
  else if (bg[0][i] == "#ffff00")
  {
    score = score + 0.5;
  }      
  else if (bg[0][i] == "#274e13")
  {
    score += 1.5;
  }
  
}
return score;  
};
函数countColor(countRange){
var sheet=SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var范围=sheet.getRange(countRange);
var rangeWidth=range.getWidth();
var bg=range.getBackgrounds();
var得分=0;
对于(变量i=0;i
1-所以我想知道为什么触发器不能正常工作


2-我还想知道,当我在另一个单元格中复制并粘贴公式时,如何执行-->这些公式对应于我粘贴公式的行。(就像普通表一样)。例如,第一个单元格中的范围是a1:b1,当我在第二个单元格中复制它时,它将是a2:b2。在大多数情况下,基于时间的触发器不能与接受参数的函数一起使用。在您的例子中,参数
countrange
可能会填充触发器事件对象,这可能会导致一些非常奇怪的行为

在google apps脚本中,您编写用于单元格的函数称为自定义函数,您不能从触发器运行自定义函数


问题的一部分可能是如何将范围从工作表传递到函数。有关详细信息,请参阅。这解决了我的第二个问题!泰!!!!使
onEdit
触发器为您工作的另一个细节是确保您正确识别编辑的单元格,确保它是您想要的区域。演示如何。稍微修改一下代码,对我来说真的很有用!!!!谢谢我希望创建某种交互,您可以“重新启动”表上的函数,但我只是验证编辑了哪一行,并在我知道函数所在的位置修改单元格。是的,我认为这与接受的参数有关,我认为可以有一种方法使这些单元格自动工作。谢谢