[英]How to replace user input to User Input + URL while making it a hyper link with Google Apps Scripts/Google Sheets?
[目标]我在一个包含多行的表格中创建了一个专用列,供用户在单元格中输入某些 ID。 我希望能够将这些 ID 与特定的固定 URL 结合起来,这将允许我们根据每个 ID 将 go 连接到特定站点。
[问题]我已经创建了以下代码,我理解它将允许使用ZE6B391A8D2C45902A2A2A2A23A2A8B6585703DZ,但是它没有将ZE6B391A8D2C45902A2A23A8B6585703DZ与IDSSE SESE NOTY IDSES NOS SOSE IDSSE设置为ZE6B391A8D2C45888。 换句话说,为了完成 URL,我们需要固定的 URL(示例:example.com)和用户提供的 ID(示例:12345)并使其可点击(示例:example.com/12345)。
[问题]有没有办法使以下步骤仅在输入 ID 时发生? 如果没有,我想让单元格空白。
// Global veriables var app = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Status"); function onEdit(e) { var setLink = app.getRange("M16:M"); setLink.setValue('=HYPERLINK("https://example.com/","Go to link for ")'); }
您的目标是将M16:M
范围内的值替换为在该单元格上编辑时包含该值的超链接。
首先,您需要利用事件 object 。
在编辑M16:M
范围内的单元格时,以下脚本将使用超链接替换该值,该超链接将包含先前的值作为url
的id
。
如果您删除M16:M
中的值,url 将自动被删除。
function onEdit(e) {
const ss = e.source;
const as = ss.getActiveSheet();
const rng = e.range;
const row = rng.getRow();
const col = rng.getColumn();
if (as.getName()=='Status' && col == 13 && row > 15){
if (rng.getValue()!=''){
rng.setValue(`=HYPERLINK("https://example.com/${rng.getValue()}","Go to link for ${rng.getValue()}")`)
}
else{
rng.clearContent();
}
}
}
当心:
onEdit
触发器,当您在工作表Status
的M16:M
范围内编辑单元格时,它将自动激活。 您不能手动执行它,它不会那样工作。 在这里查看一个简单的onEdit
触发器是如何工作的。插图:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.