6

Google スクリプトを使用するのは初めてです。行に特定の値が含まれている場合に、行とテキストの背景色を変更したいと考えています。このコードを使用して成功しました:

function onEdit() 
{
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName('Sheet1');
  var rows = sheet.getRange('a1:z');
  var numRows = rows.getNumRows();
  var values = rows.getValues();

  for (var i = 0; i <= numRows - 1; i++)
  {
    var n = i+1;
    var backgroundColor;
    var textColor;

    if(values[i].indexOf('Won'))
    {
      backgroundColor = 'red';
      textColor = 'blue';
    }
    else if(values[i].indexOf('Lost'))
    {
      backgroundColor = 'green';
      textColor = 'yellow';
    }

    sheet.getRange('a'+n+':z'+n).setBackgroundColor(backgroundColor);    
    sheet.getRange('a'+n+':z'+n).setFontColor(textColor); 
  }
}

したがって、Wonを含む行は緑に変わり、黄色のテキストが表示され、Lostを含む行は赤に変わり、青色のテキストが表示されます。

いくつかの問題:

  1. 空の行もすべて赤くなります。これを修正するにはどうすればよいですか?
  2. 私の if/else 関数は逆になっているようですが、完全に機能します。私が理解している方法は、行にウォンが含まれている場合、実際には青のテキストで赤に変わるはずだということです。この部分をよりよく理解するのを手伝ってくれる人はいますか?
4

2 に答える 2

3

この問題を解決するには、条件付き書式を使用してみます。これを行うには、目的の行を強調表示し、それらを右クリックして [条件付き書式] を選択します。

ドロップダウンボックスでカスタム数式を選択して試してください

=RegExMatch($A1,"(?i)Won")

この数式では、A1 はテキストを入力する列を示します。必要に応じて変更します。

次に、数式ボックスの横にあるオプションからテキストと背景色を選択し、範囲を選択して、色付けされたものに制約を追加できます。

次に、このプロセスを繰り返して、「紛失」用の 2 つ目のカスタム式を追加します。

=RegExMatch($A1,"(?i)Lost")

これらの数式をさらにカスタマイズして、複数のトリガー ワード、大文字と小文字の区別などを含めることができます。アイデアについては、次のリンクをご覧ください: https://support.google.com/a/answer/1371417?hl=en

これが役立つことを願っています:)

于 2015-01-29T16:45:23.850 に答える