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 数据类型。
一种方法是从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!