You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Sheets宏:编写App Script实现固定单元格区域复制

Google Sheets 固定区域一键复制的App Script实现

可以通过App Script实现固定区域的一键复制,替代手动选中复制的操作,以下是具体方案:

完整脚本代码

function copyFixedRange() {
  // 定位到「Daily Log」工作表
  const targetSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Daily Log');
  // 获取指定的固定区域AA6:AH8
  const targetRange = targetSheet.getRange('AA6:AH8');
  // 提取区域内的所有数据
  const rangeValues = targetRange.getValues();
  // 将二维数组转换为制表符分隔的文本(适配粘贴时的列对齐)
  const clipboardText = rangeValues.map(row => row.join('\t')).join('\n');

  // 通过临时HTML弹窗调用浏览器剪贴板API完成复制
  const copyDialog = HtmlService.createHtmlOutput(`
    <script>
      navigator.clipboard.writeText('${clipboardText.replace(/'/g, "\\'")}')
        .then(() => {
          alert('已成功复制AA6:AH8区域内容到剪贴板!');
          google.script.host.close();
        })
        .catch(error => {
          alert('复制失败:' + error.message);
          google.script.host.close();
        });
    </script>
  `);

  SpreadsheetApp.getUi().showModalDialog(copyDialog, '处理中...');
}

// 添加自定义菜单(可选,方便快速调用)
function onOpen() {
  const ui = SpreadsheetApp.getUi();
  ui.createMenu('快捷工具')
    .addItem('复制固定区域', 'copyFixedRange')
    .addToUi();
}

脚本说明

  1. 定位工作表与区域:精准定位到「Daily Log」工作表,直接获取AA6:AH8的固定区域,无需手动滚动选中
  2. 数据格式转换:把区域的二维数据转换成制表符分隔的文本,确保粘贴到任意位置时列能自动对齐
  3. 剪贴板写入:借助浏览器原生剪贴板API完成内容复制(服务器端脚本无法直接访问系统剪贴板,因此用临时弹窗实现)
  4. 自定义菜单(可选):onOpen函数会在打开工作表时自动添加「快捷工具」菜单,点击即可执行复制操作,无需每次进入脚本编辑器

使用步骤

  1. 打开你的Google Sheets文件,点击顶部菜单栏「扩展程序」→「Apps脚本」
  2. 清空编辑器内原有代码,粘贴上述完整脚本
  3. 点击编辑器顶部的保存按钮,给项目命名(比如「CopyFixedRangeTool」)
  4. 返回工作表,首次使用需点击「扩展程序」→「快捷工具」→「复制固定区域」,按照提示完成授权(授权仅对你的当前工作表生效,安全可控)
  5. 授权完成后,再次点击菜单选项即可一键复制目标区域,之后直接粘贴到需要的位置即可

补充说明

  • 上述脚本默认复制区域的纯文本值,日常录入场景下已能满足需求;若需要复制格式(如背景色、字体样式),可进一步修改脚本使用copyTo方法复制到临时区域再处理
  • 若复制后粘贴时需要保留格式,可在粘贴时右键选择「粘贴特殊」→「粘贴格式」,结合脚本的纯文本复制使用

内容的提问来源于stack exchange,提问作者Colin Semple

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 12:15:33