getActiveCell()在谷歌脚本上不适合我

时间:2017-12-28 08:57:43

标签: google-sheets-api

我一直在尝试为那些在输入特定短语时更改Google工作表中单元格背景颜色的人快速编写代码。代码运行正常,没有错误,但它不会在电子表格上产生任何内容。任何帮助都会很棒。

这是我的代码:

function ChangeCellHighlight() {

  //returning value of active cell
  var ss = SpreadsheetApp.getActiveSpreadsheet(); 
  var sheet =ss.getSheets()[0];
  var cell = sheet.getActiveCell();  


  //typing "Hay" will trigger cell background color 
  if  (cell == 'Hay') {  color
     cell.setBackgroundRGB(255, 0, 0); //red cell background        
  }
}

1 个答案:

答案 0 :(得分:0)

我重新写了这篇文章。我没有使用getSheets()[0],而是将其更改为getActiveSheet(),这意味着当前使用的活动工作表。如果它是特定的,您可以将其更改为getSheetByName(“SHEETNAME”)。最重要的是在它声称为'Cell'的IF语句中,它获取单元格而不是我添加的值,即cell.getValue()。我还添加了一个onEdit()函数,它是appscript中的存储函数。编辑单元格时,它会调用在其中声明的函数。

function ChangeCellHighlight() {

      //Get Current Google Sheet, Get Active Sheet Tab.
      var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); 
      //Get Active Cell.
      var cell = ss.getActiveCell();
      //If clause - does cell == "Hay"  
      if(cell.getValue() == "Hay") {
        //If YES change background to red.
        cell.setBackground("red");
      } else {
       //Anything else do nothing.
       //Do nothing or you could have Logger.log("Cell not equal to Hay");
      }
    }
    //This will run every time an edit is made.
    function onEdit(){ 
     ChangeCellHighlight(); 
    }