【问题标题】:Google Sheets - setFormulaR1C1(formula) doesn't seem to work for VLOOKUP formulaGoogle 表格 - setFormulaR1C1(formula) 似乎不适用于 VLOOKUP 公式
【发布时间】:2019-01-18 01:39:51
【问题描述】:

我希望找到一种方法来解决这个Formula parsing error,而不必在每次需要运行脚本时手动更改。

我曾希望Google Sheets - setFormulaR1C1(formula) doesn't seem to work 能解决我的问题,但添加分号并没有起到任何作用。

我正在运行一个脚本,它将以下公式添加到已添加工作表的列中的单元格中:

range.setFormulaR1C1('=VLOOKUP((INDIRECT("R[0]C[-28]";false)-INDIRECT("R[0]C[-29]";false));Moon!$B$19:$C$68;2;true)');`

它会产生一个ERROR# 和消息Formula parse error

但是,单击输入字段中的公式会导致正确的预期值出现在编辑框左侧的公式上方。

我可以通过在公式中添加左括号和右括号来手动“纠正”问题。 (然后我也可以删除那些相同的括号,并且公式仍然可以正常工作而没有解析错误。)然后我可以将公式复制到下面的行中,它工作正常。如果我在添加(和删除)括号之前尝试复制公式,它会继续失败。

展品:

  1. 在 AN 列中显示 ERROR#。

  1. 单击编辑框中的公式时,将“错误”的分辨率显示为正确的预期值“满月”。

  1. 在单元格旁边显示错误消息。

  1. 显示通过在公式开头添加“(”并在公式末尾添加“)”修改的公式。

  1. 表明解析错误消失了,正确的预期值 Full Moon 现在出现在单元格中。

  1. 表明我可以删除我添加的左括号和右括号,并且公式仍然有效,没有解析错误。

  1. 说明解析错误依旧消失,出现预期值。

  1. 表明将公式(现在在外观上与脚本提供的原始条目相同)复制到其他行会产生预期值,而不会出现解析错误。

【问题讨论】:

  • 试试setFormula()

标签: google-apps-script google-sheets parse-error google-sheets-formula


【解决方案1】:

由于您要插入使用R1C1 表示法作为INDIRECT 的文本参数A1 表示法作为另一个函数的参数的公式,因此您应该使用setFormula 而不是setFormulaR1C1 .

【讨论】:

  • 这行得通。谢谢你。但是,我发现该解决方案很有趣,因为我在不使用 VLOOKUP 的情况下在不少于十几个其他地方使用了带有 R1C1 表示法的 setFormulaR1C1 作为 INDIRECT 的一部分,并且它工作正常。
  • @RobBenson 我编辑了我的答案,以便更清楚地了解正在发生的事情。
  • 是的。我同意你的解决方案。但是,我错误地将 setFormulaR1C1 与 R1C1 符号用作其他公式中的文本参数,并且它们解析成功。例如 range.setFormulaR1C1('=INDIRECT("R[0]C[-38]",false)+INDIRECT("R[-1]C[0]",false)');给出了预期的结果。我很高兴你发现了这个问题,因为我可能永远不会自己发现它。再次感谢您。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-13
  • 1970-01-01
相关资源
最近更新 更多