首页 > 解决方案 > 通过表格中的 App 脚本将公式输入到单元格

问题描述

我正在尝试在单元格中设置此公式,但它不会让我保存。我不知道如何将它放入细胞中

quotelist.getRange("R" + rowNumberForQuote).setFormula("=if(R"&rowNumberForQuote&"="New Quote","New Quote",if(isna(VLOOKUP(B"&rowNumberForQuote&",'Form responses 4'!B:C,2,false))=True,"Sent To Customer",(VLOOKUP(B"&rowNumberForQuote&",'Form responses 4'!B:C,2,false))))");

如果单元格 R 行号 = 新报价,则写“新报价”
如果不是,则在 B 行中的 Vlookup 表格响应数 4
如果 Vlookup 为 #N/A,则如果 Vlookup 找到,则写“发送给客户”
然后显示答案

标签: google-apps-scriptgoogle-sheets

解决方案


快速修复:替换公式(的参数setFormula):

"=if(R"&rowNumberForQuote&"="New Quote","New Quote",if(isna(VLOOKUP(B"&rowNumberForQuote&",'Form responses 4'!B:C,2,false))=True,"Sent To Customer",(VLOOKUP(B"&rowNumberForQuote&",'Form responses 4'!B:C,2,false))))"

经过

`=if(R${rowNumberForQuote}="New Quote","New Quote",if(isna(VLOOKUP(B${rowNumberForQuote},'Form responses 4'!B:C,2,false))=True,"Sent To Customer",(VLOOKUP(B${rowNumberForQuote},'Form responses 4'!B:C,2,false))))`

原始公式有语法错误,因为它使用&而不是+并且没有转义". 建议的公式使用字符串模板。IHMO 这更好,因为它更容易阅读并且不需要转义简单/双引号字符(', ")。

另一种选择是替换&和转义"应该转义的,例如\"New Quote\"代替"New Quote"\"Sent To Customer\"代替"Sent To Customer"


推荐阅读