如何修改Google Apps Script批量处理多单元格范围的内部链接?
修改Google Sheets脚本以支持多范围链接更新
将原脚本的单个检查范围改为数组,循环处理每个指定范围即可实现多范围的链接更新,修改后的脚本如下:
function updateLinksInMultipleRanges() { // 定义需要处理的多个单元格范围 const checkRanges = ["I6:I10", "I212:I216", "I418:I422", "I625:I629", "I832:I836", "I1038:I1042"]; const sheet = SpreadsheetApp.getActiveSheet(); const sheetId = sheet.getSheetId(); // 循环处理每个指定范围 checkRanges.forEach(rangeStr => { const range = sheet.getRange(rangeStr); const richTextValues = range.getRichTextValues().map(row => row.map(c => { const link = c.getLinkUrl(); return link ? c.copy().setLinkUrl(link.replace(/#gid\=.*&/, `#gid=${sheetId}`)).build() : c; })); range.setRichTextValues(richTextValues); }); }
改动说明
- 将原单个
checkRange变量改为数组checkRanges,包含所有需要处理的单元格范围 - 使用
forEach循环遍历每个范围,重复执行原脚本的链接替换逻辑 - 保持原有的链接替换规则:将链接中的旧表格ID(gid参数)替换为当前活动表格的ID,确保复制后的表格链接指向自身单元格
内容的提问来源于stack exchange,提问作者Badyr
相关产品推荐
相关产品推荐

