Google Sheet脚本:PASTE_CONDITIONAL_FORMATTING选项在copyTo方法中失效
Google Sheets 复制条件格式失效问题解决办法
问题描述
尝试将Google Sheets源工作表(sheet_source)指定区域的条件格式复制到目标工作表(sheet_target)对应区域时,使用以下代码无任何效果且无报错:
spreadsheet.getSheetByName('sheet_source').getRange(14,7,200,19).copyTo(spreadsheet.getSheetByName('sheet_target').getRange(14,7,200,19), SpreadsheetApp.CopyPasteType.PASTE_CONDITIONAL_FORMATTING, false);
但将CopyPasteType改为PASTE_NORMAL时代码可正常运行,需求是仅复制条件格式。
解决后的可运行脚本
修改后的脚本可正常复制条件格式:
function CndFmtFromTmplt_PasteCndFmt() { // 获取当前活动表格 const spreadsheet = SpreadsheetApp.getActive(); // 获取源表和目标表 const sheetSource = spreadsheet.getSheetByName("Template"); const sheetTarget = spreadsheet.getSheetByName("Test Sheet"); // 清空目标表的所有条件格式规则 sheetTarget.clearConditionalFormatRules(); // 指定复制范围 const rangeSource = sheetSource.getRange('A1:AF200'); const rangeTarget = sheetTarget.getRange('A1:AF200'); // 仅复制条件格式到目标范围 rangeSource.copyTo(rangeTarget, SpreadsheetApp.CopyPasteType.PASTE_CONDITIONAL_FORMATTING,false); };
关键修复点
- 提前清空目标工作表的现有条件格式规则,避免原有规则与新复制规则冲突导致失效
- 使用明确的连续大范围(而非原代码中局部区域)进行复制,确保条件格式的关联规则被完整复制
内容的提问来源于stack exchange,提问作者Daniel
相关产品推荐
相关产品推荐

