【发布时间】:2020-03-07 22:28:58
【问题描述】:
在 Google 表格中,当您粘贴新值时,应用条件格式的单元格范围可能会发生变化。我正在寻找一个脚本,该脚本将复制工作表中存在的条件格式,并在人们粘贴数据时将其重新应用于新单元格。
我实际上并没有编写太多脚本,但我会窃取其他人的脚本,然后将它们一起弗兰肯斯坦,直到它们具有模糊的功能。这是我到目前为止偷的东西:
function onEdit(e) {
var range = e.range;
var sheet = range.getSheet();
range.clearFormat();
//clears formatting just on data that is pasted into the sheet
var rules = sheet.getConditionalFormatRules();
var newRules = [];
for(var r = 0; r < rules.length; r++) {
var booleanCondition = rules[r].getBooleanCondition();
if(booleanCondition != null) {
var rule = SpreadsheetApp.newConditionalFormatRule()
.withCriteria(booleanCondition.getCriteriaType(), booleanCondition.getCriteriaValues())
.setBackground(booleanCondition.getBackground())
.setRanges([sheet.getRange("A:A"),sheet.getRange("C:C")])
.build();
newRules.push(rule);
sheet.setConditionalFormatRules(newRules);
}
}
}
当然,问题在于我正在获取该工作表的所有条件格式规则并将它们全部应用到两列(A:A 和 C:C)。无论它们曾经应用于哪些列,都会应用这些规则。
有人可以建议一种方法来复制预先存在的条件格式规则并将它们重新应用于我从中复制它们的列吗?
【问题讨论】:
标签: google-apps-script google-sheets gs-conditional-formatting