Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.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
Google sheets 在google电子表格中填写条件后未更改单元格_Google Sheets_Google Sheets Formula_Google Sheets Api - Fatal编程技术网

Google sheets 在google电子表格中填写条件后未更改单元格

Google sheets 在google电子表格中填写条件后未更改单元格,google-sheets,google-sheets-formula,google-sheets-api,Google Sheets,Google Sheets Formula,Google Sheets Api,我想创建一个有条件的单元格结构 假设B列的值为实时分数: 在C列中,我想创建一个if条件,如下所示: 如果B>10,则C为是 然而,正如我所提到的,B列作为实时分数,即使B在之后降到10以下,我希望C保持不变。所以本质上,我希望C保持在是,一旦我的live score条件达到 请告诉我如何操作。您可以使用带有以下代码的应用程序脚本编辑器: function liveScorePass(){ var spreadsheet = SpreadsheetApp.getActiveSheet();

我想创建一个有条件的单元格结构

假设B列的值为实时分数:

在C列中,我想创建一个if条件,如下所示:

如果B>10,则C为是

然而,正如我所提到的,B列作为实时分数,即使B在之后降到10以下,我希望C保持不变。所以本质上,我希望C保持在是,一旦我的live score条件达到


请告诉我如何操作。

您可以使用带有以下代码的应用程序脚本编辑器:

function liveScorePass(){
  var spreadsheet = SpreadsheetApp.getActiveSheet();
  var i = 0;
  Logger.log(i);
  while (i == 0){
    Logger.log('B1');
    if (spreadsheet.getRange('B1').getValue() > 10){
      spreadsheet.getRange('C1').setValue("YES");
      Logger.log('C1');
      i = 1;
    }
    else{
      spreadsheet.getRange('C1').setValue("NO");
    }
  }
}

/* OPTIONAL FUNCTION*/

function onOpen(){
  var ui = SpreadsheetApp.getUi();
      // Or DocumentApp or FormApp.
      ui.createMenu('Live Score Menu')
          .addItem('Reset Script', 'liveScorePass') //creates a menu to start the script again
      .addToUi();
  var spreadsheet = SpreadsheetApp.getActiveSheet();
  liveScorePass(); //starts the script whenever you open the spreadsheet.
}
它基本上检查您的单元格
B1
是否大于10。如果不是,脚本将保持不间断运行,但当它运行时,
C1
的值设置为
YES
,而
i
设置为1,在循环时脱离thw
,不再独立于
B1
的值更改
C1
的值

编辑 要将其用作功能而不是工具栏菜单上的选项卡,您可以将其作为公式调用
=LIVESCOREPASS()
。然而,这牵涉到三件事:

  • 您不能使用任何
    set*()
    方法,因此您需要调整您的编码,这样您就可以:
  • 函数LIVESCOREPASS(){
    var电子表格=SpreadsheetApp.getActiveSheet();
    var i=0;
    Logger.log(i);
    而(i==0){
    Logger.log('B1');
    if(电子表格.getRange('B1').getValue()>10){
    var result1=“是”;
    Logger.log('C1');
    i=1;
    返回结果1;
    }
    否则{
    var result2=“否”;
    返回结果2;
    }
    }
    
    }
    你好@JoshMakan!我知道在B列中有一个不断变化的值,如果它符合条件,您希望在另一列上运行一些操作。如果我对这个场景的理解是正确的,那么您可以轻松地在中执行此操作。这对你来说是一个有效的解决方案吗?嗨,非常感谢。我如何将它作为一个函数合并到google电子表格中。现在是账单。我找不到它作为函数。我将用它的代码更新答案,但是它不起作用,因为每次更新
    B1
    ,它都会自动重置。我可以告诉你如何使用它作为一个函数,但是你需要一些其他的方法来实现它。