我正在以编程方式向单元格编写公式 .
以下代码行: formulaCells.setFormulaR1C1('=iferror(VLOOKUP(R[0]C[3],AutoCat!A:B,2,FALSE),"Requires Category")');
将此公式充分写入由 formulaCells 表示的目标Google表格文件中的所有单元格
=iferror(VLOOKUP(D2,AutoCat!A:B,2,FALSE),"Requires Category")
但问题是,当Google Scripts编写公式时,公式默认为错误标记“Requires Category”,但如果我手动将相同的公式写入Google表格,则VLOOKUP会识别实际项目 .
这太令人沮丧了!
如果我将鼠标悬停在Google Script生成的公式上,VLOOKUP的真正解决方案甚至会出现在天桥中,但由于某种原因,不会出现在单元格中 .
请帮忙!为什么Google Scripts生成的公式无法正确计算,手动输入的公式是否相同?
2 回答
好吧,在想到我已经耗尽了我的心理资源之后,我尝试了最后一件事,它确实奏效了 .
由于某些未知原因,虽然公式是准确的,但Google Scripts生成的公式与使用VLOOKUP无法很好地搜索无限范围的解决方案 . 因此,即使VLOOKUP找到了正确的解决方案,它也没有将其显示为公式结果 .
我通过在Google表格文件中创建VLOOKUP将搜索的名为 AutoCategory 的数据的命名范围,然后将该命名范围插入到Google Scripts生成的公式和BOOM中来解决此问题 . 公式开始起作用了 .
这是脚本中的最终代码:
formulaCells.setFormulaR1C1('=iferror(VLOOKUP(R[0]C[3],AutoCategory,2,FALSE),"Requires Category")');
以下是在Google表格中生成的最终公式:= iferror(VLOOKUP(D2,AutoCategory,2,FALSE),“需要类别”)
setFormulaR1C1
需要R1C1表示法,您使用R[0]C[3]
提供,但AutoCat!A:B
是A1表示法 .您可以切换到
setFormula()
并仅传入A1表示法,但我认为使用命名范围与Google Apps脚本结合使用时非常好 .