添加新行更改Google表格中的范围单元格会跳过新行

时间:2015-03-17 15:59:10

标签: google-sheets gs-conditional-formatting

最初的问题在这里并得到了我认为有效的答案:Google Sheets Conditional Formatting changes when new rows added

但是在使用它一个月左右之后,我仍然遇到条件格式化问题,当我添加一个新行时,更改“范围:”中的值。例如,如果我的格式是针对整个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())
}

同样,只要向Sheet添加新行,条件格式设置范围信息就会更改并跳过新行。

2 个答案:

答案 0 :(得分:0)

如果格式化和整个列都可行,可以在代码中完成:

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

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

上面的代码将整个B列的背景格式化为红色。

答案 1 :(得分:0)

简短回答

为整列设置条件格式设置规则,而不是按单元格设置条件格式设置。

解释

在"适用于范围"设置,范围应该类似B1:B1001,所以每当你在B1和B1001之间插入一行时,条件格式规则将包括新行。

注意:如果您使用B1:B,则会自动将其更改为将最后一个单元格设置为与电子表格中最后一行对应的单元格。