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

Google Apps Script如何读取单元格值动态实现弹窗链接跳转

实现代码

直接替换原有脚本内容即可:

// 修改为你存放链接配置的工作表实际名称
const CONFIG_SHEET_NAME = "链接配置";

function funcname() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const configSheet = ss.getSheetByName(CONFIG_SHEET_NAME);
  if (!configSheet) {
    SpreadsheetApp.getUi().alert("配置工作表不存在,请检查表名设置");
    return;
  }

  // --- 基础固定取值版:读取A1链接名、B1链接地址,不需要可注释 ---
  // const linkName = configSheet.getRange("A1").getValue();
  // const linkUrl = configSheet.getRange("B1").getValue();
  // --- 基础版结束 ---

  // --- 动态行取值版:适配批量新增链接场景,选中对应行点菜单即可读取该行A、B列配置 ---
  const activeRow = SpreadsheetApp.getActiveSheet().getActiveCell().getRow();
  // 若要固定从配置表读值,把下面两行的SpreadsheetApp.getActiveSheet()替换为configSheet
  const linkName = SpreadsheetApp.getActiveSheet().getRange(activeRow, 1).getValue();
  const linkUrl = SpreadsheetApp.getActiveSheet().getRange(activeRow, 2).getValue();
  // --- 动态版结束 ---

  if (!linkName?.toString().trim() || !linkUrl?.toString().trim()) {
    SpreadsheetApp.getUi().alert("当前位置未配置完整的链接名称或跳转地址");
    return;
  }

  const html = `<script>window.open('${linkUrl}');google.script.host.close();</script>`;
  const userInterface = HtmlService.createHtmlOutput(html);
  SpreadsheetApp.getUi().showModalDialog(userInterface, linkName);
}
使用说明
  • 先修改代码开头CONFIG_SHEET_NAME的赋值,和你存放链接的工作表名称保持一致
  • 仅需要固定读取A1、B1单元格内容时,注释掉动态行取值版的代码,取消基础版代码的注释即可
  • 需要在A、B列持续新增链接时直接用动态版逻辑:选中目标行任意单元格后点击绑定的自定义菜单,脚本会自动读取该行A列的弹窗标题、B列的跳转地址,不需要反复修改代码
  • 脚本内置基础校验,配置缺失时会弹出明确提示,不会抛出无意义的脚本运行错误
注意事项
  • 第一次触发跳转如果被浏览器拦截,在地址栏的弹窗拦截提示中选择允许Google表格的弹窗权限即可正常使用
  • 如果需要固定从配置表读取所有链接(不受当前所在工作表影响),把动态版中取linkName和linkUrl两行里的SpreadsheetApp.getActiveSheet()替换为configSheet即可
  • 如果跳转链接包含单引号字符,提前把链接里的单引号替换为%27,避免HTML脚本解析出错导致跳转失败

内容的提问来源于stack exchange,提问作者Adithya Shreshti

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 04:39:37