使用Google Script的getEditResponseURL能否将URL替换为指定文本?
解决方法:将编辑URL转为带显示文本的超链接
当然可以实现!你当前的代码是直接把原始的编辑URL写入单元格,要改成显示EDIT FORM的可点击超链接,只需要利用Google Sheets的HYPERLINK函数,替换掉原来的setValue()方法即可。
修改后的完整代码
var formURL = 'https://docs.google.com/forms/d/(MY CODE)/viewform'; var sheetName = 'Responses'; var columnIndex = 8 ; function getEditResponseUrls() { var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName); var data = sheet.getDataRange().getValues(); var form = FormApp.openByUrl(formURL); for(var i = 2; i < data.length; i++) { if (data[i][0] != '' && data[i][columnIndex-1] == '') { var timestamp = data[i][0]; var formSubmitted = form.getResponses(timestamp); if (formSubmitted.length < 1) continue; var editResponseUrl = formSubmitted[0].getEditResponseUrl(); // 关键修改:用HYPERLINK公式替代直接写URL var hyperlinkFormula = `=HYPERLINK("${editResponseUrl}", "EDIT FORM")`; sheet.getRange(i+1, columnIndex).setFormula(hyperlinkFormula); } } }
核心修改说明
- 原来的
sheet.getRange(i+1, columnIndex).setValue(editResponseUrl)是把纯文本URL写入单元格 - 现在换成构造Google Sheets的超链接公式
=HYPERLINK("编辑URL", "显示文本"),再用setFormula()方法写入单元格,这样单元格就会显示EDIT FORM,点击后直接跳转到对应的表单编辑页面
额外小提示
- 如果想要让超链接样式更统一(比如蓝色下划线),可以提前给目标列设置单元格格式,或者在代码里添加
setFontColor("blue")、setUnderline(true)这类格式设置语句 - 确保你的Google账号有足够的权限编辑该电子表格和对应的表单
内容的提问来源于stack exchange,提问作者PeteMcKinnon
相关产品推荐
相关产品推荐

