0

条件付き書式設定機能でできることと同様に、Google スプレッドシートでスクリプトを介して条件付き書式設定を使用する方法を理解しようとしています。

「国」と「州」というラベルの付いた 2 つの列があります。1 つのセルの値が「米国」の場合、スクリプトで隣接する州の列をチェックして、空白でないことを確認します。もしそうなら、セルの背景を赤に変えたいです。

スクリプトでこれを行う方法はありますか? 他のユーザーに新しいシートを作成させるため、スプレッドシート内でシートを新しく作成するためにコピーされないため、組み込み機能を使用したくありません。

参考文献をいくつか見つけましたが、それらを自分のニーズに合わせるのに苦労しています。

リンク: Google スプレッドシートの条件付き書式設定スクリプト

https://webapps.stackexchange.com/questions/16745/google-spreadsheets-conditional-formatting-based-on-another-cells-content

4

2 に答える 2

0

これをコピーして空のスクリプト ファイルに貼り付けてみてください。これは、列 A が国で、列 B が州であることに依存しますが、必要な数のシートを作成でき、これは自動的に機能します。

あなたのスクリプトのバックグラウンドがわからないので、特定の部分の説明が必要な場合はお知らせください。コードにいくつかのコメントを含めました。

function onEdit(e) {

  var ss = e.source;
  var sheet = ss.getActiveSheet();
  var range = sheet.getRange("A:B");
  var values = range.getValues();

  //for each row that data is present
  for(var i = 0; i < values.length; i++) {
    var cell = sheet.getRange(i + 1, 2);

    //check if the first value of that row is exactly "United States"
    if(values[i][0] === "United States") {

      //if it is, check for a blank cell.  If so, make it red.
      if(values[i][1] === "") {
        cell.setBackground('red');
      } else {
        cell.setBackground('white');
      }

    } else {

      //In any other case, make it white.
      cell.setBackground('white');
    }
  }  
}    
于 2015-03-04T05:30:07.997 に答える
0

Country が (1,1) に配置され、State が (1,2) に配置されているとします。ここで、(i,j) は、スプレッドシートの i 番目の行と j 番目の列を示します。Google スプレッドシートは、インデックスが 1 から始まることを意味する 1 インデックスです。

var activeSheet = SpreadsheetApp.getActiveSheet();

for (var a = 2; a < activeSheet.getLastRow(); a++) {
   if (String(activeSheet.getRange(a,1).getCell(1,1)) === "United States") { 
       if (String(activeSheet.getRange(a,2).getCell(1,1)) === null) { 
          activeSheet.getRange(a, 2, 1, 1).setBackgroundColor('red'); 
       } 
   } 
}
于 2015-03-03T01:01:01.523 に答える