【发布时间】:2020-04-22 23:40:52
【问题描述】:
【问题讨论】:
标签: regex google-apps-script google-sheets hyperlink google-sheets-formula
【问题讨论】:
标签: regex google-apps-script google-sheets hyperlink google-sheets-formula
要从超链接获取 url,你需要脚本:
function LINK(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
}
然后使用公式:
=LINK(A1)
或更短的脚本:
function LINK(input) {
var range = SpreadsheetApp.getActiveSheet().getRange(input);
var url = /"(.*?)"/.exec(range.getFormulaR1C1())[1];
return url;
}
用公式:
=LINK("A1")
或者没有脚本(如果你有超链接fx)你可以使用正则表达式:
=REGEXEXTRACT(FORMULATEXT(A1), """(.+)"",")
使用超链接获取文本:
=""&A1
或:
=TO_TEXT(A1)
【讨论】: