Google 应用程序脚本 - 获取数组中每个元素的 A1 单元格符号

tc3*_*333 1 arrays google-sheets google-apps-script

我有一个函数,我想搜索给定的工作表并返回一个包含自定义函数“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;
}
Run Code Online (Sandbox Code Playgroud)

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

Bob*_*ers 5

一种方法是从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); 
    } 
  }
}
Run Code Online (Sandbox Code Playgroud)

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