【问题标题】:Google spreadsheet script cell parametersGoogle 电子表格脚本单元格参数
【发布时间】:2011-11-18 10:39:42
【问题描述】:

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

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

【问题讨论】:

  • 我知道的一件事是你不能传递像 C1 这样的 Javascript 而不用引号引起来。

标签: google-apps-script google-sheets


【解决方案1】:

在自定义函数中,脚本中的 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 关于构建一个简单的自定义函数,其中显示了一个类似的示例。

【讨论】:

    【解决方案2】:

    这只是说getRange函数的参数不是它预期的方式。

    link to getRange() documentation

    【讨论】:

      【解决方案3】:

      getRange() 函数需要行和列。

      例如valueFirstCell 位于第 7 行第 1 列。

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

      Link to getRange() official documentation

      【讨论】:

        猜你喜欢
        • 2012-06-01
        • 2017-05-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-02-13
        • 2013-07-14
        相关资源
        最近更新 更多