能否在Google Sheets自定义App Script函数中使用无引号相对引用索引?
解决Google Sheets自定义函数无法使用相对单元格引用的问题
方法1:修改函数接收单元格对象(推荐)
Google Sheets自定义函数支持直接传入单元格/范围对象,无需手动传递字符串格式的引用。通过这种方式,你可以直接利用相对引用特性,复制单元格时引用会自动更新。
修改后的函数代码:
function myFunction(cellReference) { // 获取传入单元格的A1格式引用 const a1Notation = cellReference.getA1Notation(); // 执行你需要的操作,比如获取目标范围 const targetRange = SpreadsheetApp.getActiveSheet().getRange(a1Notation); // 示例返回A1引用,替换为实际业务逻辑的返回值 return a1Notation; }
使用方式:在单元格中输入 =myFunction(A1),复制到其他单元格时,A1 会自动变为对应的相对引用(如 B1、A2),函数会自动处理新的单元格对象。
方法2:用内置函数动态生成引用字符串
如果不想修改现有自定义函数,可以借助Google Sheets的CELL函数动态获取单元格地址,再传递给你的函数。CELL("address", 单元格)会返回该单元格的绝对引用(例如$A$1),若需要相对引用格式,可搭配SUBSTITUTE去掉美元符号。
使用示例:
=myFunction(SUBSTITUTE(CELL("address", A1), "$", ""))
若你的函数兼容绝对引用,可简化为:
=myFunction(CELL("address", A1))
复制单元格时,A1会自动更新为新的相对引用,CELL函数也会返回对应的新地址字符串,实现动态更新。
内容的提问来源于stack exchange,提问作者Carl Emil Zeidler
相关产品推荐
相关产品推荐

