我有一些带有复杂公式和条件格式的Google表格。
我正在尝试通过复制某些选项卡然后复制粘贴值来保存某些选项卡的一些归档副本。问题是,所有存档选项卡也都具有条件格式,这确实减慢了速度。
是否存在条件格式的“粘贴值”版本,以便存档选项卡上的所有 都是静态的?我正在努力加快速度。当我使用GAS复制格式时,它是在复制有条件的格式,因此当我执行currentSheet.clearConditionalFormatRules();时,所有格式都会消失。
这是一个示例Sheet。 所有颜色均通过条件格式设置。我想做的是删除所有条件格式,但是保留所有适当的颜色等,因为它们是“手动”填充的。这就是我将格式转换为“静态”的意思。 ”格式。
有没有办法做到这一点?
答案 0 :(得分:0)
您不能直接从格式规则中复制格式,但是可以获取格式的各个属性(背景,字体大小等)并将其设置为目标范围。例如,使用background [1] [2]和字体大小[3] [4]的设置/获取功能,我使用下面的代码将这些属性的值从一个范围复制到另一个范围(“ A1:AS10”从第一张到第二张):
function myFunction() {
var ss = SpreadsheetApp.openById("[SPREADSHEET-ID]");
var source = ss.getSheets()[0];
var destination = ss.getSheets()[1];
var range = source.getRange("A1:AS10");
var destinationRange = destination.getRange("A1:AS10");
var backgrounds = range.getBackgrounds();
var fontSizes = range.getFontSizes();
destinationRange.setBackgrounds(backgrounds);
destinationRange.setFontSizes(fontSizes);
}
[1] https://developers.google.com/apps-script/reference/spreadsheet/range#getbackgrounds
[2] https://developers.google.com/apps-script/reference/spreadsheet/range#setbackgroundscolor
[3] https://developers.google.com/apps-script/reference/spreadsheet/range#getfontsizes
[4] https://developers.google.com/apps-script/reference/spreadsheet/range#setfontsizessizes