Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.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 尝试使用应用程序脚本创建基本的google sheets功能_Javascript_Google Apps Script_Google Sheets_Google Sheets Api - Fatal编程技术网

Javascript 尝试使用应用程序脚本创建基本的google sheets功能

Javascript 尝试使用应用程序脚本创建基本的google sheets功能,javascript,google-apps-script,google-sheets,google-sheets-api,Javascript,Google Apps Script,Google Sheets,Google Sheets Api,代码如下: 函数CalculateUniorCredit(){ var app=电子表格应用程序; var电子表格=SpreadsheetApp.getActiveSpreadsheet(); 对于(变量i=2;i=100&&classNumber

代码如下:

函数CalculateUniorCredit(){
var app=电子表格应用程序;
var电子表格=SpreadsheetApp.getActiveSpreadsheet();
对于(变量i=2;i=100&&classNumber<200){
setValue(电子表格.getRange(i,5)+juniorCredit);
}
}

}
谷歌应用程序脚本有多个.getRange方法。看起来您要查找的是Sheet类,而不是电子表格

更改为活动工作表后,您将获得具有行和列编号的正确方法。您可以通过在getActiveSheet方法上添加

考虑更新电子表格变量:

var spreadsheet=SpreadsheetApp.getActiveSpreadsheet().getActiveSheet()

打开文档后,您会注意到返回类型是范围

这很重要,因为classNumber变量是一个范围,而不是一个数字。所以你要检查范围是否等于100-199。那是永远不会成功的

我假设您想检查该值是否等于100-199之间的任何值。您可能会考虑使用类似于您已经使用的Range.StValk方法的方法。


我希望这能为你指明正确的方向。我不想为你写所有的代码;)

Google应用程序脚本有多个.getRange方法。看起来您要查找的是Sheet类,而不是电子表格

更改为活动工作表后,您将获得具有行和列编号的正确方法。您可以通过在getActiveSheet方法上添加

考虑更新电子表格变量:

var spreadsheet=SpreadsheetApp.getActiveSpreadsheet().getActiveSheet()

打开文档后,您会注意到返回类型是范围

这很重要,因为classNumber变量是一个范围,而不是一个数字。所以你要检查范围是否等于100-199。那是永远不会成功的

我假设您想检查该值是否等于100-199之间的任何值。您可能会考虑使用类似于您已经使用的Range.StValk方法的方法。


我希望这能为你指明正确的方向。我不想为你写所有的代码;)

下面这行没有任何意义,也没有任何作用

var app = SpreadsheetApp;
下一行获取整个文件-电子表格。它没有定义要使用的选项卡

var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
您可以按照8ryan8建议的方式修复它,方法是获取活动选项卡:

var activeSheet = spreadsheet.getActiveSheet();
或者,您可以按名称获取选项卡:

var activeSheet = spreadsheet.getSheetByName('Name_of_your_sheet');
下一行获取单元格
(i,3)
。它不获取单元格中的值:

var classNumber = spreadsheet.getRange(i, 3);
要获取该值,请使用:

var classNumber = activeSheet.getRange(i, 3).getValue();
代码其余部分的逻辑没有意义。下一行获取单元格L4。并将L4的值设置为0

var juniorCredit = spreadsheet.getRange(4, 12).setValue(0);
但是
juniorCredit
不是一个值,而是一个单元格

getRange(i,5)
是一个单元格,而不是单元格中的值

因此,在以下情况下将不起作用:

juniorCredit.setValue(spreadsheet.getRange(i, 5) + juniorCredit);

我不清楚你想做什么。你需要重新思考这里的逻辑。

下面这行没有意义,也没有任何用途

var app = SpreadsheetApp;
下一行获取整个文件-电子表格。它没有定义要使用的选项卡

var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
您可以按照8ryan8建议的方式修复它,方法是获取活动选项卡:

var activeSheet = spreadsheet.getActiveSheet();
或者,您可以按名称获取选项卡:

var activeSheet = spreadsheet.getSheetByName('Name_of_your_sheet');
下一行获取单元格
(i,3)
。它不获取单元格中的值:

var classNumber = spreadsheet.getRange(i, 3);
要获取该值,请使用:

var classNumber = activeSheet.getRange(i, 3).getValue();
代码其余部分的逻辑没有意义。下一行获取单元格L4。并将L4的值设置为0

var juniorCredit = spreadsheet.getRange(4, 12).setValue(0);
但是
juniorCredit
不是一个值,而是一个单元格

getRange(i,5)
是一个单元格,而不是单元格中的值

因此,在以下情况下将不起作用:

juniorCredit.setValue(spreadsheet.getRange(i, 5) + juniorCredit);

我不清楚你想做什么。您需要重新考虑这里的逻辑。

可能
i
j
没有正确的索引值。为什么不使用这样的公式呢?简单的
=SUMIF()
函数应该可以获取您想要的结果,我相信,您可以在一张表中共享输入和期望的结果吗?可能
i
j
没有正确的索引值。为什么不使用这样的公式呢?简单的
=SUMIF()
函数应该可以获取您想要的结果,我相信,您可以在一张表中共享输入和期望的结果吗?感谢提示,我尝试更新电子表格变量,但当我尝试运行它时,它说它无法读取null的.getActiveSheet()的属性,这意味着什么?如何修复它?您可以尝试使用ADW建议的电子表格.getSheetByName。根据实施方式的不同,可能未选择活动图纸。您可以针对您想要更具体地使用的工作表,这里是该方法的文档:感谢提示,我尝试更新电子表格变量,但当我尝试运行它时,它说它无法读取null的.getActiveSheet()属性,这意味着什么?如何修复它?您可以尝试使用ADW建议的电子表格.getSheetByName。根据实施方式的不同,可能未选择活动图纸。您可以更具体地针对要使用的工作表。以下是该方法的文档: