Javascript 通过谷歌应用程序脚本在电子表格中计算分数
所以,经过几个小时的研究和讨论,我只声明了一些变量,创建了一个for循环,里面没有任何内容。我不知道我需要在里面放些什么,我甚至不确定这些变量是否都是实用的。不用说,我几乎没有使用JavaScript的经验。我只擅长使用电子表格功能和电子表格设计:/ 以下是电子表格的链接:Javascript 通过谷歌应用程序脚本在电子表格中计算分数,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,所以,经过几个小时的研究和讨论,我只声明了一些变量,创建了一个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()不接受任何参数trysheetTime.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)
最后两个参数是行数和列数。您希望在每个范围中添加哪些列?请将您的问题更新为当前代码