我在脚本参数中传递2个单元格时遇到问题:
function myFunction(c1, c2) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[1]; //This is the correct sheet
var valueFirstCell = sheet.getRange(c1).getValue();
var valueSecondCell = sheet.getRange(c2).getValue();
return valueSecondCell - valueFirstCell;
}
所以我在单元格A3中使用它:
=myFunction(A1, A2)
并且假设A1 = 10且A2 = 15我希望A3显示5但是,
var valueFirstCell = sheet.getRange(c1).getValue();
失败“论证必须是一个范围” 有什么想法吗?
答案 0 :(得分:2)
在自定义函数中,脚本中的c1和c2实际上将是这些单元格中的值,因此您可以直接使用它们。你可以通过添加Logger.log(c1)来看到;和Logger.log(c2);到你的脚本。试试这个:
function myFunction(c1, c2) {
Logger.log(c1);
Logger.log(c2);
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[1]; //This is the correct sheet
return c2 - c1;
}
有一个关于构建一个简单自定义函数的教程here,它显示了一个类似的例子。
答案 1 :(得分:0)
这是juste说getRange
函数的论证不符合它的预期。
答案 2 :(得分:0)
getRange()
函数需要行和列。
例如valueFirstCell
在第7行和第1列中。
var valueFirstCell = sheet.getRange(7,1).getValue();