从前几行复制格式

Copy formatting from previous rows

在 Google 表格中,我想按以下方式使用条件格式:

  1. 添加或键入空白行
  2. 一旦行不为空,自动将格式从上面的行复制到新行。

基本上所有填充的行都是:居中、带边框的 ETC。

我查看了条件格式,但我看到的只是更改颜色和字体的选项。我需要更多,所以也许它可能需要某种规则。有办法吗?

条件格式不会做 "copy the format of another row" 之类的事情,但可以用脚本来完成。请参阅 introduction to scripts in Sheets,要点是脚本位于工具 > 脚本编辑器下。

以下脚本在每次编辑时运行(因此,可能会稍微减慢 sheet)。它跟踪最后格式化的行,如果填充的行多于该行,则通过从最后格式化的行复制格式,它们也会被格式化。

function onEdit() {
  var sp = PropertiesService.getScriptProperties();
  var lastFormattedRow = parseInt(sp.getProperty("lastFormattedRow") || 1, 10);
  var sheet = SpreadsheetApp.getActiveSheet();
  var lastRow = sheet.getLastRow();
  if (lastRow > lastFormattedRow) {
    var lastColumn = sheet.getLastColumn();
    var range = sheet.getRange(lastFormattedRow, 1, 1, lastColumn);
    for (var r = lastFormattedRow + 1; r <= lastRow; r++) {
      range.copyTo(sheet.getRange(r, 1, 1, lastColumn), {formatOnly: true});
    }
    sp.setProperty("lastFormattedRow", lastRow);
  }    
}