我在使用我的第一个Google Script时遇到了一些麻烦,并希望得到一些帮助 .
目标:在多个工作表中搜索值,然后在找到匹配项时返回单元格的位置 .
我尝试过使用这个脚本:
/**
* Finds a value within a given range.
* @param value The value to find.
* @param range The range to search in.
* @return A range pointing to the first cell containing the value,
* or null if not found.
*/
function find(value, range) {
var data = range.getValues();
for (var i = 0; i < data.length; i++) {
for (var j = 0; j < data[i].length; j++) {
if (data[i][j] == value) {
return range.getCell(i + 1, j + 1);
}
}
}
return null;
}
但是它返回错误“TypeError:无法在对象中找到函数getValues”
我的值将定义为文本字符串,例如“ABCD”
我的范围将是多张纸的范围,例如sheet1!A1:C4,sheet2!A1:C4
该函数应返回查找值的工作表,列和行
目前我正在使用iferror索引匹配循环公式一次搜索一个列(我使用间接作为我的范围是可变的)但是想要一个脚本来使这更容易和更快 .
=IFERROR(index(INDIRECT(Sheet1!A:A),
iferror(MATCH(A2,INDIRECT(Sheet1!B:B),0),
iferror(MATCH(A2,INDIRECT(Sheet1!C:C),0),
...ETC
预先感谢您的任何帮助 .
1 回答
试试这个:
这将返回范围 . 您可以更改该行以获取A1Notation: