google-apps-script - 通过表格中的 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 找到,则写“发送给客户”
然后显示答案
解决方案
快速修复:替换公式(的参数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"
。
推荐阅读
- .net - 如何在 Azure AD B2C 登录的 webview 屏幕中删除 URL
- tabs - 如何将 konsole 选项卡放在左侧?
- ssl - 在非阻塞模式下,openssl 允许在客户端使用任何证书
- reactjs - Jest,Enzyme,React - 测试 Iframe OnLoad
- javascript - 从 Dropzone.js 获取全尺寸图像(不是缩略图大小)的数据 URI
- c++ - c++ Boost if .extension() == "" 这意味着这个文件是一个文件夹?
- google-apps-script - 检查单元格中的值并将其与单个单元格进行比较
- sas - SAS 中的宽到长数据集
- android - 从 Gradle 获取 PullRequest 编号
- sql-server - SQL Server:批处理中的语句都作为一个事务执行?