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。根据实施方式的不同,可能未选择活动图纸。您可以更具体地针对要使用的工作表。以下是该方法的文档: