【问题标题】:Google Sheets formula generated by a GAS script throws an error, even though it's correct由 GAS 脚本生成的 Google 表格公式会引发错误,即使它是正确的
【发布时间】:2019-09-25 12:37:34
【问题描述】:

我在 GAS 中创建了一个脚本,该脚本从杂乱的条目中提取 ID,然后将其输入到将在数据表中查找的公式中 - 但是,由脚本创建的公式会导致 Google 表格被丢弃一个错误,好像公式有问题。但是,使用 Google 表格的“查找和替换”窗口来替换相同字符的字符(如起始 = 到 =),可以使其接受公式并正确运行 - 手动删除字符,按 Enter并将其放回原处也可以。

我已经尝试在 GAS 中实现查找和替换以使其自动执行 - 虽然脚本可以正常工作并替换给定的字符,但它并没有执行手动查找和替换所做的工作 - 已经更正的公式仍然有效,并且那些“不正确”的仍然是错误的。

for(var i = 0; i < range.getNumRows(); i++ ){
    //Processing to extract the id
    valsO[i][0]="=IF(ISERROR(VLOOKUP(\""+id+"*\";'Data'!B2:B$8400;1;FALSE));\"NONE\";VLOOKUP(\""+id+"*\";'Data'!B2:B$8400;1;FALSE))";
    }
range=sheet.getRange(range.getRowIndex(), resultColumn, range.getNumRows());
range.setFormulas(valsO);

编辑:从.setValues 更正为.setFormulas 和从IFERROR 更正为ISERROR - 但是,公式解析错误仍然存​​在,尽管在输入或复制粘贴的情况下仍然有效。

【问题讨论】:

  • 如果您要设置公式,您应该使用.setFormulas() 而不是.setValues()
  • @ross 我不知道存在这种方法。那是我的错。但是,将 .setValues() 替换为 .setFormulas() 并不能解决问题。
  • 你能分享你的工作表吗?
  • @GNUsNotAUser 我不允许共享工作表,因为工作表包含个人信息。对不起
  • 错误是什么?

标签: google-apps-script google-sheets


【解决方案1】:

在制作电子表格的匿名版本供所有人查看和检查时,我无意中发现了正确的答案。

我的问题是,我希望 Google 表格能够解析从非英语语言的脚本生成的公式,就像在表格中直接键入时通常那样。一旦我将整个公式,包括布尔值 FALSE 翻译成英文,脚本就开始正常工作了。

感谢您的帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-27
    • 2020-06-15
    • 2012-07-22
    相关资源
    最近更新 更多