Google应用脚本 - 获取数组中每个元素的A1单元格表示法

时间:2015-07-06 17:47:31

标签: arrays google-apps-script google-sheets

我有一个函数,我想搜索给定的工作表并返回包含自定义函数“POPULATE”的单元格数组。该函数当前返回每个“= POPULATE”实例的字符串数组。

function formulaSearch() {
  var sheet = spreadsheet.getSheetByName('test');
  var range = sheet.getDataRange();
  var values = range.getValues();
  var formulas = range.getFormulas();

  // Search for all cells with the POPULATE function and put them into array
  var cells = [];
  for (var row in formulas) {
    for (var col in formulas[row]) {
      if (formulas[row][col].indexOf("=POPULATE") > -1 ) {
        cells.push(formulas[row][col]);
        Logger.log(cells); 
      } 
    }
  }
  return cells;
}

如何以包含公式的每个单元格的A1表示法返回单元格数组?我知道.getA1Notation()方法,但我无法将返回数组中的元素转换为Range数据类型。

1 个答案:

答案 0 :(得分:4)

一种方法是从range变量中获取单元格,然后从中获取A1表示法:

for (var row in formulas) {
  for (var col in formulas[row]) {
    if (formulas[row][col].indexOf("=POPULATE") > -1 ) {
      cell = range.getCell(row+1, col+1).getA1Notation();
      cells.push(cell);
      Logger.log(cells); 
    } 
  }
}

编辑:范围不是0索引。在getCell()中添加了1到row和col。谢谢你指出@ tsc333!