我有这个电子表格:
我正在创建一个脚本,以在不为空的行上添加公式,我得到了以下结果:
function myFunction() {
var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
ss.getRange('Odds Completas!O2').setFormula('=C2+J2');
var lr = ss.getLastRow();
var fillDownRange = ss.getRange(2, 15, lr-1);
ss.getRange('Odds Completas!O2').copyTo(fillDownRange);
}
该公式在中定义O2
,但以下其他未定义。而是,出现以下消息:
范围中的行数必须至少为1。(第6行)
这个答案怎么样?请认为这只是几个答案之一。
ss
由声明SpreadsheetApp.getActiveSpreadsheet().getActiveSheet()
。另一方面,该范围使用包含工作表名称的a1Notation。我认为您的问题的原因是这样的。
ss.getRange('Odds Completas!O2').setFormula('=C2+J2');
,公式被放入工作表的单元格“ O2” Odds Completas
。var lr = ss.getLastRow();
,检索活动工作表的最后一行。lr
返回0
。这样,错误发生在ss.getRange('Odds Completas!O2').copyTo(fillDownRange);
。
lr-1
被使用。因此,即使最后一行为1,也会发生错误。请注意这一点。在这种模式下,您的脚本不会被修改。在运行脚本之前,请打开工作表Odds Completas
并运行脚本。这样,脚本将作为的活动工作表运行Odds Completas
,并lr
返回的最后一行Odds Completas
。
在这种模式下,您的脚本将被修改。
function myFunction() {
var sheetName = "Odds Completas";
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName(sheetName);
sheet.getRange('O2').setFormula('=Q2+J2');
var lr = sheet.getLastRow();
var fillDownRange = sheet.getRange(2, 15, lr-1);
sheet.getRange('O2').copyTo(fillDownRange);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句