Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.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
Javascript 通过谷歌应用程序脚本在电子表格中计算分数_Javascript_Google Apps Script_Google Sheets - Fatal编程技术网

Javascript 通过谷歌应用程序脚本在电子表格中计算分数

Javascript 通过谷歌应用程序脚本在电子表格中计算分数,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,所以,经过几个小时的研究和讨论,我只声明了一些变量,创建了一个for循环,里面没有任何内容。我不知道我需要在里面放些什么,我甚至不确定这些变量是否都是实用的。不用说,我几乎没有使用JavaScript的经验。我只擅长使用电子表格功能和电子表格设计:/ 以下是电子表格的链接: 您可以随意创建一个副本,并在脚本编辑器中检查代码。当然,我也会在这篇文章的末尾添加我的代码 现在,这个电子表格的目的是什么? 它跟踪在线游戏玩家参与风险投资的时间 你可以在表格中看到两组玩家(护卫队和矿工)的持续时间,以确

所以,经过几个小时的研究和讨论,我只声明了一些变量,创建了一个for循环,里面没有任何内容。我不知道我需要在里面放些什么,我甚至不确定这些变量是否都是实用的。不用说,我几乎没有使用JavaScript的经验。我只擅长使用电子表格功能和电子表格设计:/

以下是电子表格的链接:
您可以随意创建一个副本,并在脚本编辑器中检查代码。当然,我也会在这篇文章的末尾添加我的代码

现在,这个电子表格的目的是什么?

  • 它跟踪在线游戏玩家参与风险投资的时间
  • 你可以在表格中看到两组玩家(护卫队和矿工)的持续时间,以确定他们参与风险投资的时间。护送队的“工资”栏与我的问题无关
  • 对于本表而言,重要的是,在每次冒险之后,“名称”、“开始”和“直到”列都将被重置
    这就是黄色按钮的作用
  • 球队旁边有一个“分数”表,其中应包含球员的持续分数。
    玩家根据他们参与的时间获得分数
  • 现在,在“分数”列中,它只查找当前的持续时间,但如果按下重置按钮,分数也会重置。此外,查找只检查护送团队,因为我当时并不麻烦,因为它无论如何都不适合我
我想让分数按钮做什么

  • 如果按下按钮,它将查找两个队中每个球员的当前持续时间,并将值添加到“分数”下的相应单元格中。因此,这将跟踪每个玩家的历史分数
  • 每个团队的参与者数量可能因每次创业而有所不同
  • 分数表中的名称可以随时更改、添加或删除新名称。
    不会有一千个玩家,但是用户应该可以自由添加他/她想要的任意多的名字
以下是我到目前为止的想法。
这段代码大部分是基于我在中找到的内容。我认为这对于我如何在电子表格中搜索数据来说是相当准确的,但由于我的知识滞后,我在计算时陷入了困境。任何形式的帮助都将不胜感激,无论是工作代码还是提示我需要什么函数

function scoreButton() {
  
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheetTime = ss.getActivesheet();
  
  var rangeEscort = sheetTime.getRange(5, 1, sheetTime.getLastRow()-4, 4);  // range for first team of players
  var rangeMiner = sheetTime.getRange(5, 7, sheetTime.getLastRow()-4, 10);  // range for second team of players
  var rangeScore = sheetTime.getRange(5, 12, sheetTime.getLastRow()-4, 14); // range for the scores
  
  var searchRangeEscort = sheetTime.getRange(5, 5, sheetTime.getLastRow()-5+1, sheetTime.getLastColumn()-5+1);
  var searchRangeMiner = sheetTime.getRange(5, 7, sheetTime.getLastRow()-5+1, sheetTime.getLastColumn()-7+1);
  var searchRangeScore = sheetScore.getRange(5, 12, sheetTime.getLastRow()-5+1, sheetTime.getLastColumn()-12+1);
  
  var rangeValues = searchRangeEscort.getValues();
  for (i = 0; i < lastColumnEscort - 1; i++){
    for (j = 0; j < lastRowEscort - 1; j++){
     
    };
  };
};
函数scoreButton(){
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sheetTime=ss.getActivesheet();
var rangeEscort=sheetTime.getRange(5,1,sheetTime.getLastRow()-4,4);//一队球员的射程
var rangeMiner=sheetTime.getRange(5,7,sheetTime.getLastRow()-4,10);//第二组玩家的范围
var rangeScore=sheetTime.getRange(5,12,sheetTime.getLastRow()-4,14);//分数的范围
var searchRangeEscort=sheetTime.getRange(5,5,sheetTime.getLastRow()-5+1,sheetTime.getLastColumn()-5+1);
var searchRangeMiner=sheetTime.getRange(5,7,sheetTime.getLastRow()-5+1,sheetTime.getLastColumn()-7+1);
var searchRangeScore=sheetScore.getRange(5,12,sheetTime.getLastRow()-5+1,sheetTime.getLastColumn()-12+1);
var rangeValues=searchRangeEscort.getValues();
对于(i=0;i<1;i++){
对于(j=0;j

编辑:更新代码。

我建议您在问题的顶部添加一个摘要,并使标题更具体。
var rangeEscort=sheetTime.getDataRange(“A5:D”)
getDataRange()不接受任何参数try
sheetTime.getRange(5,1,sheetme.getLastRow()-4,4)
使用A1符号,如A5:D,通常会在需要过滤的数据末尾返回null。建议不要使用它们,除非您可以使用它们指定特定的行。
var searchRangeEscort=sheetTime.getRange(5,5,lastRowEscort-1,lastColumnEscort-1)应按如下方式编写:
sheetTime.getRange(startRow,startColumn,sheetTime.getLastRow()-startRow+1,sheetTime.getLastColumn()-startColumn+1)
最后两个参数是行数和列数。您希望在每个范围中添加哪些列?请将您的问题更新为当前代码