如何在Google Apps Script中获取单元格调用的自定义函数(非返回值)
在Google Apps Script中获取单元格的公式(而非返回值)的方法
完全可以实现,核心是利用Google Apps Script提供的getFormula()和getFormulas()方法,以下是具体实现方式:
单个单元格获取公式
使用Range.getFormula()方法,直接返回目标单元格的公式字符串(如果单元格无公式则返回空字符串)。示例代码:function getSingleCellFormula() { const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("你的工作表名称"); const cellFormula = sheet.getRange("A1").getFormula(); console.log(cellFormula); // 输出A1单元格的公式,比如"=SUM(B1:B10)" }批量获取大量单元格的公式
处理大量单元格时,推荐使用Range.getFormulas(),它会返回一个二维数组,对应区域内每个单元格的公式(无公式的位置为空白字符串),效率远高于循环调用单个单元格的getFormula()。示例代码:function bulkGetFormulas() { const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); // 替换为你需要处理的单元格区域,比如"A1:Z1000" const targetRange = sheet.getRange("A1:Z1000"); const formulasArray = targetRange.getFormulas(); // 遍历数组,输出所有带公式的单元格信息 for (let row = 0; row < formulasArray.length; row++) { for (let col = 0; col < formulasArray[row].length; col++) { const formula = formulasArray[row][col]; if (formula) { const cellAddress = targetRange.offset(row, col, 1, 1).getA1Notation(); console.log(`单元格${cellAddress}的公式:${formula}`); } } } }注意事项
- 对于使用
ARRAYFORMULA填充的区域,只有输入公式的那个单元格会返回完整的数组公式,其他受数组公式影响的单元格会返回空字符串。 - 确保你有对应工作表的编辑权限,否则脚本会抛出权限错误。
- 对于使用
内容的提问来源于stack exchange,提问作者planellito
相关产品推荐
相关产品推荐

