javascript - 如果编辑单元格则插入超链接

标签 javascript google-sheets

我有一个 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/

相关文章:

html - 从工作表到网站的有效嵌入范围

javascript - Google脚本找不到getRange也没有运行权限

google-apps-script - 如何在 Google Apps 脚本中根据单元格的背景颜色反转字体颜色?

python - 在python中,是否可以在没有授权码的情况下编辑公开共享的谷歌工作表?

javascript,来自json的嵌套导航栏

javascript - 纯 JavaScript 中基于 URL 的单页应用程序导航?

javascript - 如何将参数从modalInstance发送到angularjs中的指令

javascript - 如何找到localStorage的大小

javascript - 在react js中解析JSON

javascript - 将电子邮件正文导出到 Google 表格中的多个单元格中