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

如何通过Google Sheets脚本实现按钮触发跨工作表单元格取值赋值

解决方案

这个需求完全可以通过Google Apps Script实现,以下是完整操作步骤:

1. 打开脚本编辑器

打开你的Google表格,点击顶部导航栏的「扩展程序」>「Apps Script」,进入脚本编辑页面,删除编辑器中默认生成的myFunction相关代码。

2. 写入自定义脚本

将以下代码粘贴到编辑器中,根据你实际的单元格需求调整对应参数:

// 复制单元格值到Sheet2的核心函数
function copyToSheet2() {
  const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  // 定义源表和目标表名称,名称需要和你表格中的实际命名完全一致
  const sourceSheet = spreadsheet.getSheetByName("Sheet1");
  const targetSheet = spreadsheet.getSheetByName("Sheet2");

  // 单元格映射规则:source为Sheet1中要读取的单元格,target为Sheet2中要写入的对应单元格
  const copyRule = [
    {source: "B2", target: "A2"},
    {source: "B3", target: "B2"},
    {source: "B4", target: "C2"},
    {source: "D2", target: "D2"},
    {source: "D3", target: "E2"},
    {source: "D4", target: "F2"}
  ];

  // 执行复制操作
  copyRule.forEach(rule => {
    const cellValue = sourceSheet.getRange(rule.source).getValue();
    targetSheet.getRange(rule.target).setValue(cellValue);
  });

  // 可选:如果需要每次点击追加新行而非覆盖原有内容,删除上方执行复制的代码,使用下方代码即可
  /*
  const valueList = copyRule.map(rule => sourceSheet.getRange(rule.source).getValue());
  const nextEmptyRow = targetSheet.getLastRow() + 1;
  targetSheet.getRange(nextEmptyRow, 1, 1, valueList.length).setValues([valueList]);
  */
}

粘贴完成后点击编辑器顶部的保存按钮,给项目随便起个名字比如「单元格复制工具」,保存即可。

3. 给按钮绑定脚本

回到你的Google表格页面:

  • 点击顶部菜单栏「插入」>「绘图」,画一个你喜欢的按钮样式,输入文字「添加到sheet2」,点击保存并调整到合适的位置
  • 右键点击刚才插入的按钮,点击右上角的三个点图标,选择「分配脚本」,在弹出的输入框中输入函数名copyToSheet2,点击确定

4. 测试功能

直接点击按钮,第一次使用会弹出授权提示,按照提示完成授权即可:如果出现「Google未验证此应用」的提示,点击「高级」>「前往[你的项目名](不安全)」,按照提示完成授权即可,脚本为你自己编写,仅会操作当前表格,不存在安全风险。
授权完成后再次点击按钮,就能看到Sheet1的对应值已经同步到Sheet2的指定位置了。

注意事项

  • 工作表名称、单元格位置要和你实际的表格完全匹配,大小写敏感,写错会导致脚本报错
  • 如果需要新增复制的单元格,只需要在copyRule数组中按照格式新增对应映射项即可
  • 授权过程中出现的安全提示是Google对自定义脚本的常规校验,你自行编写的脚本不会泄露你的表格数据

内容的提问来源于stack exchange,提问作者melwyn mendonca

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 13:15:03