提问人:Wind 提问时间:6/13/2020 更新时间:9/8/2022 访问量:1083
如何在引用特定范围的同时制作一个函数来提取Google表格中的新富文本链接?
How to make a function to extract the new rich text links in Google Sheets while referencing specific ranges?
问:
前段时间,谷歌表格更改了富文本链接的添加,现在在公式中找不到链接了。就我个人而言,我非常不喜欢这种变化,因为我使用了一个自定义函数,该函数使用旧公式从单元格中提取超链接,而使用新的更改,我只是找不到一种方法来做到这一点。我还不是很擅长功能,主要是我尽可能详细地写题目的原因。
我需要做的是使用自定义公式从单元格中提取超链接,因为它需要在许多其他香草公式中使用。如何设置自定义函数/公式以根据范围提取新的超链接?
以下是我想提取链接的工作表: https://docs.google.com/spreadsheets/d/1JnSKQ7nd4J3NPRH4uSsOCYms-DF16j1pkCAuJeikToo/edit#gid=317867416
我想从正在发布的游戏中提取链接,因为我需要在其他地方使用这些链接,并且我还希望在需要时准备好导入它们。
我需要在另一个单元格中指定一个公式来提取这些链接。例如,它将根据我为其插入的范围提取新的富文本超链接。=GETURL(B6)
或者,是否可以配置文档,以便在插入时以旧格式创建链接?这样,我就可以尝试解决新设置,将来插入的链接将进入公式。=HYPERLINK
非常感谢!
答:
0赞
christianrana
9/8/2022
#1
我认为这个脚本会派上用场。 它提供了从超链接公式中检索 URL 的可能性。
- 转到脚本编辑器,然后创建一个新项目。
- 保存文件。
- 前往运行>linkURL以运行脚本。这将在 Google 表格中创建一个新函数。
- 假设单元格 A1 中包含超链接。转到任何单元格并键入 ,然后按 Enter。
=linkURL(A1)
function linkURL(reference) {
var sheet = SpreadsheetApp.getActiveSheet();
var formula = SpreadsheetApp.getActiveRange().getFormula();
var args = formula.match(/=w+((.*))/i);
try {
var range = sheet.getRange(args[1]);
}
catch(e) {
throw new Error(args[1] + ' is not a valid range');
}
var formulas = range.getFormulas();
var output = [];
for (var i = 0; i < formulas.length; i++) {
var row = [];
for (var j = 0; j < formulas[0].length; j++) {
var url = formulas[i][j].match(/=hyperlink("([^"]+)"/i);
row.push(url ? url[1] : '');
}
output.push(row);
}
return output
}
评论
0赞
zzzzzzz
1/28/2023
我收到以下错误Syntax error: SyntaxError: Invalid regular expression: /=hyperlink("([^"]+)"/: Unterminated group line: 16 file: Code.gs
评论