我有一个 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 值) 在下面的脚本中,仅当输入 var value 中的任何值(区分大小写)时才会创建超链接。
function onEdit(e) {
var sheet = e.source.getActiveSheet();
var values = ['Google', 'Yahoo', 'Microsoft', 'Apple']
if (sheet.getName() !== 'Sheet1' || values.indexOf(e.value) == -1) return;
e.range.setFormula('=HYPERLINK("//www.google.com/?gws_rd=ssl#q=+' + e.value + '", "' + e.value + '")')
}
关于javascript - 如果编辑单元格则插入超链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32217491/