报错TypeError: Cannot read properties of undefined (reading 'getFormula')求解决
解决方案
问题根源分析
- 方法调用错误:你使用的
getFormulas()是针对**多单元格范围(Range)**的方法,返回二维数组;单个单元格获取公式的正确方法是getFormula()。 - 参数无效:报错
Cannot read properties of undefined说明传入的cell参数是undefined,并非有效的Range对象。
具体修复步骤
- 修正方法名:将
cell.getFormulas()替换为cell.getFormula(),适配单个单元格的公式获取需求。 - 确保参数有效:调用
function_1时必须传入有效的Range对象,示例代码如下:// 示例:主动获取目标单元格并传入函数 function testFunction() { const activeSheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); const targetCell = activeSheet.getRange("A1"); // 替换为你需要的单元格 function_1(targetCell); } function function_1(cell) { // 先校验参数合法性 if (!cell || !(cell instanceof Range)) { throw new Error("请传入有效的单元格Range对象"); } const formula = cell.getFormula(); // 后续业务逻辑... } - 规避手动运行的参数问题:如果直接在脚本编辑器手动运行
function_1,系统不会自动传入参数,必须通过其他函数(如上述testFunction)调用,或者在function_1内部直接获取目标单元格,不要依赖外部参数传入。
额外提示
如果你的场景需要处理多单元格范围,保留getFormulas()的同时,要确保传入的是多单元格Range(比如activeSheet.getRange("A1:C3")),此时返回的是二维数组,需要遍历数组获取每个单元格的公式。
内容的提问来源于stack exchange,提问作者Sir_Peter
相关产品推荐
相关产品推荐

