Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
If statement 如何使用IF条件设置公式?_If Statement_Google Apps Script_Google Sheets - Fatal编程技术网

If statement 如何使用IF条件设置公式?

If statement 如何使用IF条件设置公式?,if-statement,google-apps-script,google-sheets,If Statement,Google Apps Script,Google Sheets,我正在为我的公司创建一个工具,我希望它创建一个新的工作表,并在“主工作表”中列出这些工作表。当在主工作表的一行中选中复选框时,我希望“辅助工作表”中的一个单元格显示“完成”,否则显示“未完成” 我的问题是: 公式未正确应用于单元格 我试图在setFormula函数中避免使用“or”,但没有任何更改,而且单元格中仍然存在“ERROR” function newsheet(){ var s = SpreadsheetApp.getActive(); //All lines to create the

我正在为我的公司创建一个工具,我希望它创建一个新的工作表,并在“主工作表”中列出这些工作表。当在主工作表的一行中选中复选框时,我希望“辅助工作表”中的一个单元格显示“完成”,否则显示“未完成”

我的问题是: 公式未正确应用于单元格

我试图在setFormula函数中避免使用“or”,但没有任何更改,而且单元格中仍然存在“ERROR”

function newsheet(){
var s = SpreadsheetApp.getActive();
//All lines to create the new sheet
s.getRange('L1').setValue("=IF(MainSheet!H3=TRU;\"FINISH\";\"NOT FINISHED\")");
}

//I also tried the following :

function tests(){
  var s = SpreadsheetApp.getActive();
  var finished = '"FINISHED"';
  var not_finished = '"NOT FINISHED"';
  s.getRange('L1').setFormula('=IF(MainSheet!H3=TRUE;'+finished+';'+not_finished+')');
}
我希望这一行应用公式,以便在任何时候更改复选框都可以修改单元格而无需脚本,但目前我在两个测试中都有“公式分析错误”


我建议您交替使用单引号和双引号,以避免与转义混淆。此外,您的公式中有一个小的键入错误:“TRU”而不是“TRUE”

这项工作:

function newsheet(){
var s = SpreadsheetApp.getActive();
//All lines to create the new sheet
s.getRange('L1').setValue('=IF(MainSheet!H3=TRUE;"FINISH";"NOT FINISHED")');
}

经过几次尝试,我发现了一些东西:

    function tests(){
  var s = SpreadsheetApp.getActive();
  s.getRange('L1').setFormula("IF(H3=TRUE;\"TERMINEE\";\"EN COURS\")");
}

这行得通,但我昨天的剧本还是一样的(但是法语的),我再也听不懂法语了。

谢谢你的回答!但我仍然有同样的错误。另一个细节:我的谷歌表是法语的,所以我没有“如果”,而是“SI”,真的是VRAI等等。。也许这可能来自于这种差异?在法语中,正确的公式应该是
=SI(MainSheet!H3=VRAI,“FINISH”,“notfinished”)
。您的工作表名是真的
Mainsheet
,还是有法文名称?到底是什么不起作用?请注意,您的脚本在活动工作表中设置了公式,这在辅助工作表中不是必需的,最好使用:
var s=SpreadsheetApp.getActive().getSheetbyName(“辅助工作表的名称”)我知道,我所有的工作表都在我的脚本中定义得很好(我真诚地认为脚本是可以的)。我的主要工作表叫做“需求表”。我试图将单元格“L1”复制/粘贴到“L2”中,但没有成功。我还尝试复制/粘贴由单元格“L3”中的脚本编写的公式(在单元格“L1”内),该公式在该单元格中工作正常。另一个细节:细胞需求!H3包含一个复选框。也许这很重要?检查这张说明我问题的图片脚本正在运行,你可以检查我对我问题的回答。我不知道发生了什么,也许是一种虫子?脚本中的英语和表单中的法语之间有什么问题吗?无论如何,谢谢你的帮助,谢谢你花时间解释一切。