0

シート内の 1 つの列をループして、アクティブ セルの値と色に応じて隣接するセルに値を設定しようとしています。これは私が試したものですが、うまくいかないようです...

function setValue(){
  var sheet = SpreadsheetApp.getActiveSpreadsheet();
  var end = SpreadsheetApp.getActiveSheet().getLastRow();

  for( var i = 1; i < end + 1; ++i){
    var value = sheet.getRange(i, 4).getValue();
    var color = sheet.getRange(i, 4).getColor();
    if (value == "Authenticated" && color == "#ffffff") {
      sheet.getRange(i, 5).setValue("True");
      }
     else {
       sheet.getRange(i, 5).setValue("False");
       }
  }
}

アップデート:

ありがとうございました!非常に大きなデータセットがあるため、この関数はタイムアウトします。一度に1セルずつ関数にすることを考えていました。これを試してみましたが、inputValue セルの背景色の色を取得できないようです...

function setKeep(inValue){
  var sheet = SpreadsheetApp.getActiveSheet();
  var cell = sheet.getActiveCell();
  var color = cell.getBackgroundColor();
  var outValue = "";

  if (inValue == "AUTHENTICATED" && color == "white"){
    outValue = "TRUE";
    }
  else{
    outValue = "FALSE";
    }
  return outValue;

}
4

3 に答える 3