google-apps-script - 从多个不相邻的单元格获取值

标签 google-apps-script google-sheets

我尝试从 Google 表格中的多个不相邻单元格获取值(作为数组)。

function myFunction() {
  var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var arr = ['C1', 'C2', 'C4'];
  var val = ss.getRangeList(arr).getValues();
  Logger.log(val);
}

我得到以下信息:

TypeError: ss.getRangeList(...).getValues is not a function".

非常感谢您的帮助。

最佳答案

这个修改怎么样?

修改点:

  • 不幸的是,RangeList类中没有getValues方法。我认为这就是您出现问题的原因。
  • 为了检索['C1', 'C2', 'C4']单元格中的值,需要使用getRanges方法。这样就可以使用getValues了。

当这些反射(reflect)到您的脚本中时,它会变成如下所示。

修改后的脚本:

function myFunction() {
  var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var arr = ['C1', 'C2', 'C4'];
  var val = ss.getRangeList(arr).getRanges().map(range => range.getValues());  // Modified
  Logger.log(val);
}
  • 在本例中,val 数组中的每个元素都是二维数组。

注意:

  • 在您的情况下,每个单元格都是一个单元格。所以我认为下面的脚本也可以使用。

      var val = ss.getRangeList(arr).getRanges().map(range => range.getValue());
    
  • 或者,为了从多个不相邻的单元格中检索值,我创建了 RangeListApp Google Apps 脚本库。使用此功能时,您的脚本如下。

      var ss = SpreadsheetApp.getActiveSpreadsheet();
      var sheetName = ss.getActiveSheet().getSheetName();
      var arr = ['C1', 'C2', 'C4'];
      var rangeList = arr.map(e => `${sheetName}!${e}`);
      var val = RangeListApp.getSpreadsheet(ss).getRangeList(rangeList).getValues().map(e => e.values);
      Logger.log(val);
    

引用文献:

关于google-apps-script - 从多个不相邻的单元格获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63406274/

相关文章:

javascript - 如何链接返回代码 302 的外部 js 文件

javascript - 在拆分中使用析取

google-apps-script - 如何在 Google 表格中使用复选框和脚本隐藏和取消隐藏列?

javascript - 在递归函数中正确处理二维值数组

javascript - 比较两个数组,如果在另一个数组中找到值,则将该值设置为 True

google-apps-script - 是否可以从谷歌电子表格填充谷歌表单?

google-apps-script - 创建云平台项目时出现意外错误。错误代码 DEADLINE_EXCEEDED

google-apps-script - Google 表单提交按钮的 onClick 事件

javascript - 无法在 doGet() 中执行多个 MailApp.sendEmail()

google-apps-script - Google App Script/Spreadsheet - 如何获得过滤条件?