从前几行复制格式
Copy formatting from previous rows
在 Google 表格中,我想按以下方式使用条件格式:
- 添加或键入空白行
- 一旦行不为空,自动将格式从上面的行复制到新行。
基本上所有填充的行都是:居中、带边框的 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);
}
}
在 Google 表格中,我想按以下方式使用条件格式:
- 添加或键入空白行
- 一旦行不为空,自动将格式从上面的行复制到新行。
基本上所有填充的行都是:居中、带边框的 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);
}
}