Google apps script 尝试使用集合公式将代码添加回已清除的工作表时出错

Google apps script 尝试使用集合公式将代码添加回已清除的工作表时出错,google-apps-script,Google Apps Script,我正试图在谷歌表单中创建一个手动存档功能(基于表单响应)。这是一个弗兰肯斯坦在这一点上的努力,因为我已经收集了一些零碎的东西,把它放在一起。我很快就要完成了,但当我在将公式清除到归档文件后试图将其添加回工作表时,我遇到了麻烦 我相信这并不奇怪,我是新来的,我觉得我错过了一些简单的东西。下面的公式是直接从活动电子表格中复制的,它们工作正常,但由于某些原因,我无法解析脚本,以便在清除工作表后将它们放回原处。如果有人愿意提供帮助,我将不胜感激 我得到一个错误: 缺少)在参数列表之后 在下面两行“cel

我正试图在谷歌表单中创建一个手动存档功能(基于表单响应)。这是一个弗兰肯斯坦在这一点上的努力,因为我已经收集了一些零碎的东西,把它放在一起。我很快就要完成了,但当我在将公式清除到归档文件后试图将其添加回工作表时,我遇到了麻烦

我相信这并不奇怪,我是新来的,我觉得我错过了一些简单的东西。下面的公式是直接从活动电子表格中复制的,它们工作正常,但由于某些原因,我无法解析脚本,以便在清除工作表后将它们放回原处。如果有人愿意提供帮助,我将不胜感激

我得到一个错误:

缺少)在参数列表之后

在下面两行“cell.setFormula”代码中,不会出现“代码块”:


这是怎么回事?即使在电子表格中,我的公式是否“错误”?

您必须小心使用“”。就像你写的一样,控制台也会像

cell.setFormula("=IF(ISNUMBER(FIND("
他没有找到丢失的)

你应该这样写

cell.setFormula("=IF(ISNUMBER(FIND(\"14.29\",U2)),U2*Q2,IF(ISNUMBER(FIND(\"5.24\",U2)),U2*Q2,\"\"))");

在JavaScript中,双引号用于表示字符串类型。如果在“”中放置任何内容,它会告诉JS代码解析器将这些双引号之间的任何内容视为字符串

String也是Range类的setFormula()方法的唯一有效参数类型,因此括号内的任何内容都应属于此类型

看看你公式中的这一部分

cell.setFormula("=IF(ISNUMBER(FIND("14.29",
语法分析器会将第一对双引号之间的部分识别为字符串,但14.29将被视为数字,因为这是字符串的结尾。解析器将立即停止并抛出错误

解决方案是对公式中的字符串使用单引号,例如

range.setFormula("=IF(ISNUMBER(FIND('14.29',P2)),14.29,IF(ISNUMBER(FIND('5.24',P2)),5.24,''))");

我的电子表格不喜欢新的公式格式(单引号),但当我将javascript双引号改为单引号时,它工作了,即
cell.setFormula('=IF(ISNUMBER(FIND(“14.29”,P2)),14.29,IF(ISNUMBER(FIND(“5.24”,P2)),5.24,”)谢谢!JavaScript可以使用单引号或双引号来声明字符串。看到和
range.setFormula("=IF(ISNUMBER(FIND('14.29',P2)),14.29,IF(ISNUMBER(FIND('5.24',P2)),5.24,''))");