Google Apps Script同工作表复制指定区域数据并保留格式求助
最终可直接使用的代码
function moveValuesOnly () { var ss = SpreadsheetApp.getActiveSpreadsheet(); var workSheet = ss.getSheetByName("V / MA"); // 定义源数据区域:左上角蓝色表格 var sourceRange = workSheet.getRange("A4:J21"); // 定义目标粘贴区域:底部第二个蓝色表格 var destRange = workSheet.getRange("A63:J80"); // 仅复制值,不修改目标区域原有格式、边框 destRange.setValues(sourceRange.getValues()); // 仅清空源区域内容,保留源表格的格式与边框 sourceRange.clearContents(); }
核心修改说明
- 调整了目标区域逻辑:不再跨表写入,改为直接写入同工作表
V / MA的指定固定区域A63:J80,匹配需求 - 解决边框清除、格式不匹配问题:替换原有
copyTo方法为getValues+setValues组合,该操作仅传输单元格纯内容,完全不会触碰目标区域预设的边框、样式、数据验证等属性,从根源避免格式被覆盖 - 优化源区域清空逻辑:将
clear()改为clearContents(),仅清空源表格内容,保留源表格的原有格式、边框,无需每次使用后重新调整样式
使用说明
你已创建的按钮无需调整,将原有脚本替换为上述代码保存后,点击按钮即可正常触发功能。因你说明两个表格行列数完全一致,代码无需额外适配可直接运行。
内容的提问来源于stack exchange,提问作者user13391131
相关产品推荐
相关产品推荐

