求可绑定按钮的Google Script:仅复制Sheet的值与格式(不含公式)
简易Google Script:复制Sheet值与格式(不含公式)
嘿,这就给你一个完全符合需求的脚本,直接就能用,之后你绑定到按钮上就行:
function copyValuesAndFormatting() { // 获取当前打开的电子表格 const activeSpreadsheet = SpreadsheetApp.getActiveSpreadsheet(); // 👇 这里可以自定义源工作表和目标工作表的名称 const sourceSheet = activeSpreadsheet.getActiveSheet(); // 默认取当前活动的工作表,也可以改成 getSheetByName("你的源表名称") const targetSheet = activeSpreadsheet.getSheetByName("你的目标表名称"); // 替换成实际的目标工作表名称 // 获取源表中所有已使用的单元格范围 const sourceRange = sourceSheet.getDataRange(); // 目标范围和源表范围大小一致,这里默认从A1开始,想改位置的话可以用 getRange(行号, 列号) 比如 getRange(2, 3) 就是第2行第3列开始 const targetRange = targetSheet.getRange(sourceRange.getA1Notation()); // 先复制格式(字体、颜色、边框、列宽行高这些都会同步) sourceRange.copyTo(targetRange, SpreadsheetApp.CopyPasteType.FORMAT_ONLY, false); // 再复制值(只保留计算后的结果,不会带公式) sourceRange.copyTo(targetRange, SpreadsheetApp.CopyPasteType.PASTE_VALUES, false); // 可选:复制完弹出提示,不需要的话可以删掉这行 SpreadsheetApp.getUi().alert("值与格式已成功复制完成!"); }
简单说明:
- 如果不是复制到另一个工作表,而是同一个表的其他位置,只需要修改
targetRange的部分,比如改成targetSheet.getRange(5, 1)(从第5行第1列开始粘贴) - 要是想固定源表,把
sourceSheet那行改成getSheetByName("你的源表名称")就行,比如getSheetByName("原始数据")
之后你绑定按钮的时候,记得把脚本的函数名copyValuesAndFormatting填到分配脚本的输入框里就好啦。
内容的提问来源于stack exchange,提问作者Max Ambinder
相关产品推荐
相关产品推荐

