从以前的行复制格式

时间:2017-12-28 14:48:52

标签: google-sheets gs-conditional-formatting

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

  1. 添加或输入空白行
  2. 一旦行不为空,则自动将格式复制到上面的行中。
  3. 基本上任何填充的行都是:居中,有边界的ETC。

    我看过条件格式,但我看到的只是改变颜色和字体的选项。我需要更多,也许它可能需要某种规则。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:1)

条件格式化不会像"复制另一行"的格式,但可以用脚本完成。请参阅introduction to scripts in Sheets,重点是脚本位于工具>下脚本编辑器。

以下脚本在每次编辑时运行(因此,可能会稍微减慢工作表的速度)。它跟踪最后一个格式化的行,如果填充了更多的行,它们也会通过从最后一个格式化的行复制格式来格式化。

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);
  }    
}
相关问题