搜索一行以查找匹配项

时间:2015-09-17 17:41:51

标签: google-sheets google-spreadsheet-api

我对Google表格非常陌生,特别是使用Apps Script API为表格制作功能。

我的目标是连续搜索3个单元格,如果三个中的两个包含' X'则第三个单元格不会变为蓝色。

目前,工作表具有以下条件格式:

  • X =绿色
  • 空=红色
  • ? =橙色
  • ! =蓝色

因此,如果行中的其他两个单元格为Empty,则意图将!单元格更改为X

供参考的图片:

enter image description here

基本上,我需要一个可以检查一系列单元格内容的函数,但我不知道如何正确使用API​​,如果有人能给我一些帮助,我将不胜感激。

注意:这不适用于任何类型的项目,这仅适用于我的朋友和我自己。

修改

我的想法是将范围作为函数参数(例如A1:C1),然后访问范围的单元格数据并相互检查它们。我的问题是,我不知道如何使用API​​来获取此数据。

1 个答案:

答案 0 :(得分:1)

如果之前提到的场景适用,您可以使用此方法:

function checkRow() {
  var ss = SpreadsheetApp.getActive();
  var activeCell = ss.getActiveCell();
  var currentRow = activeCell.getRow();
  var currentCol = activeCell.getColumn();
  var allRange = ss.getRange("A1:C3");
  var activeValue = activeCell.getValue();
  var secondCell, thirdCell;

  if(activeValue == "x") 
  {
    if ( currentCol == 1 ) 
    {
      secondCell = allRange.getCell( currentRow, currentCol+1 );
      thirdCell = allRange.getCell( currentRow, currentCol+2 );
    } else if ( currentCol == 2 )
    {
      secondCell = allRange.getCell( currentRow, currentCol-1 );
      thirdCell = allRange.getCell( currentRow, currentCol+1 );
    } 
    else if ( currentCol == 3 )
    {
      secondCell = allRange.getCell( currentRow, currentCol-1 );
      thirdCell = allRange.getCell( currentRow, currentCol-2 );
    }
      if ( secondCell.getValue() == "x" && thirdCell.getValue() == "" ) 
      {
        thirdCell.setValue("!");
        thirdCell.setBackground("#00FFFF");
      } else if (thirdCell.getValue() == "x" && secondCell.getValue() == "" ) 
      {
        secondCell.setValue("!");
        secondCell.setBackground("#00FFFF");
      }
    } 
}