Google电子表格脚本单元格参数

时间:2011-11-18 10:39:43

标签: spreadsheet google-docs-api google-apps-script

我在脚本参数中传递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(); 

失败“论证必须是一个范围” 有什么想法吗?

3 个答案:

答案 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函数的论证不符合它的预期。

link to getRange() documentation

答案 2 :(得分:0)

getRange()函数需要行和列。

例如valueFirstCell在第7行和第1列中。

var valueFirstCell = sheet.getRange(7,1).getValue(); 

Link to getRange() official documentation