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

Google sheets 添加新行会更改Google工作表中的范围单元格,跳过新行,google-sheets,gs-conditional-formatting,Google Sheets,Gs Conditional Formatting,原来的问题就在这里,有一个我认为有效的答案: 但在使用了一个月左右之后,我仍然遇到了条件格式化的问题,即在添加新行时更改“Range:”中的值。例如,如果我的格式是针对整个B列,然后我在第35行中添加了一行,那么条件格式现在的范围是B1:B34,而第35行没有格式 解决方案是将此代码放在谷歌表单的脚本编辑器中 function formatRange(){ var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss

原来的问题就在这里,有一个我认为有效的答案:

但在使用了一个月左右之后,我仍然遇到了条件格式化的问题,即在添加新行时更改“Range:”中的值。例如,如果我的格式是针对整个B列,然后我在第35行中添加了一行,那么条件格式现在的范围是B1:B34,而第35行没有格式

解决方案是将此代码放在谷歌表单的脚本编辑器中

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())
}

同样,每当向工作表中添加新行时,条件格式范围信息都会更改并跳过新行。

如果格式和整个列都可行,则可以通过代码实现:

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

  var range = sheet.getRange("B:B");
  range.setBackground("red");
}
以上代码将整个B列的背景设置为红色。

简短回答 为整列设置条件格式规则,而不是逐个单元格设置条件格式

解释 在“应用于范围”设置中,范围应该类似于
B1:B1001
,因此,每当您在B1和B1001之间插入一行时,条件格式规则将包括新行


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

如果您设置了整列的格式,这是否适用?或者当前数据下是否有格式和/或数据,格式不同?适用于Excel。对于Google Sheets use无法对鲁宾的回答发表评论,我想指出,如果您选择插入单元格而不是行,那么这将不起作用。插入行会将列的高度范围分解为插入点上方和下方的两个不同范围。因此,我将条件格式放在所有列的第2行中,因为不同的列具有不同的规则。脚本编辑器中的实际代码是:
function formatRange(){var ss=SpreadsheetApp.getActiveSpreadsheet();var sheet=ss.getSheetByName(“文件”);var range=sheet.getRange(“A2:R2”);range.copyFormatRange(sheet,1,sheet.getLastColumn(),1,sheet.getLastRow())}
,因为我认为这会抓住A2,B2,C2等连接到R2,然后保持其格式。但是,无论何时添加新行,它都会更改值。好的,让我尝试一下。似乎违反直觉,不是吗?:)似乎B1:B将包括所有添加的行,但让我尝试一下您的解决方案。谢谢