0

元の質問はここにあり、私がうまくいっていると思った答えがありました: Google Sheets Conditional Formatting changes when new rows added

しかし、これを 1 か月ほど使用した後も、新しい行を追加すると、「Range:」の値が変更される条件付き書式設定の問題が発生します。たとえば、書式設定が B 列全体に適用され、行 35 に行を追加した場合、条件付き書式設定の範囲には B1:B34 が含まれ、行 35 には書式設定がありません。

解決策は、このコードを Google スプレッドシートのスクリプト エディターに配置することでした。

function formatRange(){
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var sheet = ss.getSheetByName("Sheet1");
    var range = sheet.getRange("A1");
 range.copyFormatToRange(sheet,1,sheet.getLastColumn(),1,sheet.getLastRow())
}

繰り返しますが、新しい行がシートに追加されるたびに、条件付き書式の範囲情報が変更され、新しい行がスキップされます。

4

2 に答える 2

0

簡潔な答え

セルごとに条件付き書式を設定するのではなく、列全体に条件付き書式ルールを設定します。

説明

[範囲に適用] 設定では、範囲は のようなものにする必要があるB1:B1001ため、B1 と B1001 の間に行を挿入すると、条件付き書式設定ルールに新しい行が含まれます。

注: 使用B1:Bすると、最後のセルがスプレッドシートの最後の行に対応するセルに設定されるように自動的に変更されます。

于 2016-02-16T11:25:08.737 に答える
0

書式設定と列全体が実行可能な場合は、コードで実現できます。

function columnBackground() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];

  var range = sheet.getRange("B:B");
  range.setBackground("red");
}

上記のコードは、列 B 全体の背景を赤でフォーマットします。

于 2015-03-17T21:16:49.603 に答える