脚本执行clear()清除单元格时保留条件格式的方法
问题原因
无参数调用Range.clear()方法时,会重置目标单元格的全部属性,包括单元格内容、手动设置的单元格格式、绑定的条件格式规则、数据验证规则、批注等,因此会同步删除你之前配置的条件格式。
解决方案
如果只需要清除单元格内容、保留所有格式和规则,直接替换原有代码为clearContent()方法即可:
shUserForm.getRange("C7").clearContent();
如果需要自定义清除的内容范围(比如同时清除手动设置的普通格式,但保留条件格式),可以给clear()方法传入配置对象,按需指定要清除的属性,只要不配置conditionalFormatOnly: true就不会删除原有条件格式:
// 示例:清除内容 + 手动设置的普通格式,保留条件格式、数据验证 shUserForm.getRange("C7").clear({ contentsOnly: true, formatOnly: true, validationsOnly: false });
常用清除方法效果对比
clearContent():仅清空单元格内的数值、文本、公式等内容,所有格式、条件格式、数据验证、批注全部保留,是单纯清空内容场景的最优选择clear({contentsOnly: true}):效果和clearContent()完全一致- 无参数
clear():清空单元格所有配置,相当于恢复为无内容无格式的初始空白单元格状态,就是你之前代码误删条件格式的原因
内容的提问来源于stack exchange,提问作者Ovidiu Botei
相关产品推荐
相关产品推荐

