假设我的电子表格中=HYPERLINK("http://google.com/abc","Google")
中有A1
,我想创建一个自定义的Google Apps脚本(例如=GetURL(A1)
)来返回此字段的网址部分。要做到这一点我需要做些什么?
每当我创建一个像这样的自定义脚本
function GetURL(input) {
return input
}
我得到的只是链接的描述,在本例中为“Google”。
有没有办法让这个有效?
答案 0 :(得分:1)
这是一个老问题,但我现在遇到了这个问题。
事实证明,当您使用电子表格 Web 应用程序向单元格中的文本添加超链接时,文本会获得富文本值。 (另请参阅如何通过 Apps 脚本设置 Richt 文本值的 here)。
因此,range.getFormula();
不会得到任何结果,因为单元格中没有公式。
您可以提取绑定到富文本的链接:
var value = range.getRichTextValue().getLinkUrl()
getRichTextValue 和 getLinkUrl 的文档
答案 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一起放在引号中以使其工作。