You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Sheets脚本中含撇号名称的公式语法问题求助

解决方法

核心逻辑

在Google Sheets公式中,字符串内部的单引号需要用两个连续单引号转义;而在Apps Script的字符串里,为避免引号嵌套冲突,最简洁的方式是用**反引号(`)**包裹整个公式字符串,省去繁琐的转义操作。


修复错误示例2

原问题是公式中C='O'Brien, Conan'的单引号未按Sheets规则转义,同时Apps Script字符串嵌套导致语法错误。修复后代码:

spreadsheet.getRange('B6').setFormula(`=iferror(query('Contact list'!A6:F,"Select A,B,C,D where C='O''Brien, Conan'",0),"None")`);

说明:

  • 用反引号包裹整个公式,无需转义内部的单引号和双引号
  • 将Sheets公式内的O'Brien改为O''Brien,符合Sheets字符串单引号转义规则

修复错误示例3

原问题是公式中"O'Keefe"的单引号未转义,修复后代码:

spreadsheet.getRange('D3').setFormula(`=ARRAYFORMULA(IF((NOT(ISBLANK(A3:A))),"O''Keefe",""))`);

说明:

  • 同样用反引号包裹公式,简化嵌套处理
  • 将O'Keefe改为O''Keefe,满足Sheets对字符串内单引号的转义要求

备选方案(不用反引号)

如果习惯用单引号或双引号包裹公式,需对内部引号手动转义:

  • 用双引号包裹整个公式时,内部双引号加反斜杠转义,Sheets公式内单引号仍用两个连续单引号:
spreadsheet.getRange('B6').setFormula("=iferror(query('Contact list'!A6:F,\"Select A,B,C,D where C='O''Brien, Conan'\",0),\"None\")");
  • 用单引号包裹整个公式时,内部单引号加反斜杠转义,Sheets公式内单引号用两个连续单引号:
spreadsheet.getRange('B6').setFormula('=iferror(query(\'Contact list\'!A6:F,"Select A,B,C,D where C=\'O\'\'Brien, Conan\'",0),"None")');

反引号写法更简洁易读,推荐优先使用。

内容的提问来源于stack exchange,提问作者MUNGHOLMI

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 15:11:23