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

求Google Apps Script脚本:复制带超链接的表格行至另一工作表

Google Apps Script自动复制表单提交数据到指定工作表

实现步骤与代码

  1. 打开你的谷歌表格,点击顶部菜单栏的「扩展程序」→「Apps 脚本」,进入脚本编辑器。
  2. 删除默认代码,粘贴以下脚本:
function onFormSubmit(e) {
  // 获取当前表格实例
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  // 定位目标工作表
  const responsesSheet = ss.getSheetByName("Responses");
  const targetSheet = ss.getSheetByName("Sheet1");
  
  // 获取表单刚提交的那一行(通过事件对象直接获取,避免多人提交时的行号误差)
  const submittedRow = e.range;
  // 提取需要的单元格:K列是第11列,M列第13列,V列第22列
  const kCell = submittedRow.getCell(1, 11);
  const mCell = submittedRow.getCell(1, 13);
  const vCell = submittedRow.getCell(1, 22);
  
  // 获取单元格内容
  const kValue = kCell.getValue();
  const mValue = mCell.getValue();
  // 提取V列的超链接和显示文本
  const vHyperlink = vCell.getHyperlink();
  const vDisplayText = vCell.getValue();
  
  // 找到Sheet1的下一个空白行
  const nextEmptyRow = targetSheet.getLastRow() + 1;
  
  // 写入A、B列
  targetSheet.getRange(nextEmptyRow, 1).setValue(kValue);
  targetSheet.getRange(nextEmptyRow, 2).setValue(mValue);
  
  // 写入C列并保留可点击超链接
  if (vHyperlink) {
    // 用HYPERLINK公式创建带链接的单元格
    targetSheet.getRange(nextEmptyRow, 3).setFormula(`=HYPERLINK("${vHyperlink}", "${vDisplayText}")`);
  } else {
    // 如果V列没有超链接,直接写入文本
    targetSheet.getRange(nextEmptyRow, 3).setValue(vDisplayText);
  }
}

设置自动触发的触发器

  1. 在脚本编辑器左侧,点击「触发器」图标(闹钟样式)。
  2. 点击「添加触发器」,按以下配置:
    • 选择要运行的函数:onFormSubmit
    • 选择事件源:「从电子表格」
    • 选择事件类型:「表单提交」
  3. 点击「保存」,按照提示完成授权(首次授权需要手动允许脚本访问你的表格数据)。

关键说明

  • 用事件对象e获取提交行:比手动找最后一行更可靠,避免多人同时提交时出现行号错误。
  • 超链接保留:通过getHyperlink()提取V列的链接地址,再用HYPERLINK公式在Sheet1的C列生成可点击的链接,完全保留原链接功能。
  • 适配无链接情况:如果V列没有超链接,会直接写入原文本,避免报错。

内容的提问来源于stack exchange,提问作者SB Promo Vids

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 22:49:54