从Google Apps脚本中的HYPERLINK中为Google电子表格提取网址

时间:2016-07-27 00:02:05

标签: google-apps-script google-sheets

假设我的电子表格中=HYPERLINK("http://google.com/abc","Google")中有A1,我想创建一个自定义的Google Apps脚本(例如=GetURL(A1))来返回此字段的网址部分。要做到这一点我需要做些什么?

每当我创建一个像这样的自定义脚本

function GetURL(input) {
  return input
}

我得到的只是链接的描述,在本例中为“Google”。

有没有办法让这个有效?

2 个答案:

答案 0 :(得分:1)

这是一个老问题,但我现在遇到了这个问题。

事实证明,当您使用电子表格 Web 应用程序向单元格中的文本添加超链接时,文本会获得富文本值。 (另请参阅如何通过 Apps 脚本设置 Richt 文本值的 here)。

因此,range.getFormula(); 不会得到任何结果,因为单元格中没有公式。

您可以提取绑定到富文本的链接:

var value = range.getRichTextValue().getLinkUrl()

getRichTextValuegetLinkUrl 的文档

答案 1 :(得分:0)

function getUrl(input) {
  var range = SpreadsheetApp.getActiveSpreadsheet().getRange(input);
  var value = range.getFormula(); 
  return value;
}

这会得到原始公式=HYPERLINK("http://google.com/abc","Google",然后您可以将URL重新出现或子串出来。

我确实必须将ss引用与=getUrl("A1")中的A1一起放在引号中以使其工作。