如何自动修改谷歌表格副本中的内部链接指向自身?
批量修复Google Sheets副本内的单元格链接GID
步骤1:创建修复脚本
- 打开你的「master copy」表格,点击顶部菜单栏的「扩展程序」→「Apps 脚本」
- 删除编辑器中的默认代码,粘贴以下脚本:
function fixLinks() { const sheet = SpreadsheetApp.getActiveSheet(); const currentGid = sheet.getSheetId(); const dataRange = sheet.getDataRange(); const richTextValues = dataRange.getRichTextValues(); // 遍历所有单元格 for (let row = 0; row < richTextValues.length; row++) { for (let col = 0; col < richTextValues[row].length; col++) { const richText = richTextValues[row][col]; const linkUrl = richText.getLinkUrl(); // 仅处理包含超链接的单元格 if (linkUrl) { // 替换链接中的gid参数为当前工作表的GID const newLinkUrl = linkUrl.replace(/#gid=\d+/, `#gid=${currentGid}`); // 创建新的富文本对象并设置回单元格 const newRichText = richText.copy().setLinkUrl(newLinkUrl).build(); dataRange.getCell(row + 1, col + 1).setRichTextValue(newRichText); } } } SpreadsheetApp.getUi().alert('链接修复完成!'); }
步骤2:添加「修复链接」按钮
- 返回表格页面,点击顶部菜单栏「插入」→「绘图」
- 绘制一个带文字「修复链接」的按钮(比如用矩形工具加文本框),完成后点击「保存并关闭」
- 点击刚插入的绘图按钮,点击右上角的三个点图标→「分配脚本」,输入函数名
fixLinks,点击「确定」
步骤3:运行脚本
点击「修复链接」按钮,首次运行需按照提示完成权限授权,授权完成后脚本会自动遍历当前工作表所有带链接的单元格,将链接中的原GID替换为当前工作表的GID,完成后会弹出提示框告知修复完成。
内容的提问来源于stack exchange,提问作者Badyr
相关产品推荐
相关产品推荐

