Javascript 如果编辑了单元格,请插入超链接

Javascript 如果编辑了单元格,请插入超链接,javascript,google-sheets,Javascript,Google Sheets,我有一个Google工作表,每当有人更新单元格时,我都想使用onEdit(e)功能执行两件事: 1) 检查单元格是否有特定文本,并且 2) 如果包含所述文本,则向所述单元格添加具有相同短语/内容的超链接 因此,如果我在单元格A1中输入“Yahoo”,我希望单元格更新为“Yahoo”,并带有指向脚本中任何网站的超链接 我不确定该怎么处理这个 function onEdit(e){ // If the cell contains 'Yahoo", link it to the Google Sear

我有一个Google工作表,每当有人更新单元格时,我都想使用
onEdit(e)
功能执行两件事:

1) 检查单元格是否有特定文本,并且
2) 如果包含所述文本,则向所述单元格添加具有相同短语/内容的超链接

因此,如果我在单元格A1中输入“Yahoo”,我希望单元格更新为“Yahoo”,并带有指向脚本中任何网站的超链接

我不确定该怎么处理这个

function onEdit(e){
// If the cell contains 'Yahoo", link it to the Google Search Results page for "Yahoo"
var cellval = e.value
if(cellval.match("Yahoo")!=null) value.setFormula('=HYPERLINK("//www.google.com/?gws_rd=ssl#q="+"Yahoo", "Yahoo")')
 }
类似的东西?我已经尝试过使用
onEdit(e)
简单的触发器示例作为基础(如下),但有些东西不起作用:

function onEdit(e){
// Set a comment on the edited cell to indicate when it was changed.
var range = e.range;
range.setNote('Last modified: ' + new Date());
}

编辑:编辑后,我可以获得要更新的单元格,但如果单元格包含某些文本,我想让它特别更新,而不仅仅是基于整个工作表。

尝试以下操作:

function onEdit(e) {
var sheet = e.source.getActiveSheet();
if (sheet.getName() !== 'Sheet1' || !e.value) return;
e.range.setFormula('=HYPERLINK("//www.google.com/?gws_rd=ssl#q=+' + e.value + '", "' + e.value + '")')
}
在上面的示例中,我将脚本“限制”为仅在名为“Sheet1”的工作表上工作,因为我可以想象您不希望在任何地方都进行这种转换?如果需要,您可以进一步将其限制在特定列或特定范围内

编辑:仅转换某些文本(请参见变量值) 在下面的脚本中,仅当输入了var values中的任何值(区分大小写)时,才会创建超链接


试着这样做:

function onEdit(e) {
var sheet = e.source.getActiveSheet();
if (sheet.getName() !== 'Sheet1' || !e.value) return;
e.range.setFormula('=HYPERLINK("//www.google.com/?gws_rd=ssl#q=+' + e.value + '", "' + e.value + '")')
}
在上面的示例中,我将脚本“限制”为仅在名为“Sheet1”的工作表上工作,因为我可以想象您不希望在任何地方都进行这种转换?如果需要,您可以进一步将其限制在特定列或特定范围内

编辑:仅转换某些文本(请参见变量值) 在下面的脚本中,仅当输入了var values中的任何值(区分大小写)时,才会创建超链接


那么现在的问题是什么呢?根据JPV的回答,如果在某个工作表中编辑某个单元格,我可以得到要更新的单元格,但我想缩小范围,使其仅在单元格包含特定文本时更新。我尝试使用
getActiveCell()
,但我可能用了错误的方法。那么现在有什么问题呢?根据JPV的回答,如果在某个工作表中编辑单元格,我可以得到要更新的单元格,但我想缩小范围,使其仅在单元格包含特定文本时更新。我试着使用
getActiveCell()
,但我可能用了错误的方法;我想我是在试图找出我遗漏了什么。我想这归结为使用e.value(而不是硬编码的“yahoo”),正确使用公式的语法,并使用e.range获得编辑的范围,其中需要设置公式。如果我的答案对您有帮助,请接受我的答案?答案是正确的,因为我知道如果您的回复中的工作表名称为“Sheet1”,单元格将如何更新,但我希望它检查单元格内容中的某些文本,并且仅当单元格包含某些文本时才更新,不仅仅是编辑的工作表是“Sheet1”。@PurposeUnknown:我不认为这是原始问题。但是,按照这样的方向更改脚本应该不会太困难。查看我编辑过的答案。设法添加了我自己的参数以使更新生效,但有一个有趣的问题:当我删除单元格时,要添加一个新值,它会更新为“未定义”。我仍然可以用一个新的值编辑它,但我很好奇为什么当我删除它时它不会保持空白;我想我是在试图找出我遗漏了什么。我想这归结为使用e.value(而不是硬编码的“yahoo”),正确使用公式的语法,并使用e.range获得编辑的范围,其中需要设置公式。如果我的答案对您有帮助,请接受我的答案?答案是正确的,因为我知道如果您的回复中的工作表名称为“Sheet1”,单元格将如何更新,但我希望它检查单元格内容中的某些文本,并且仅当单元格包含某些文本时才更新,不仅仅是编辑的工作表是“Sheet1”。@PurposeUnknown:我不认为这是原始问题。但是,按照这样的方向更改脚本应该不会太困难。查看我编辑过的答案。设法添加了我自己的参数以使更新生效,但有一个有趣的问题:当我删除单元格时,要添加一个新值,它会更新为“未定义”。我仍然可以用一个新的值编辑它,但我很好奇为什么当我删除它时它不会保持空白。