I have copied from a website a series of hyperlinks and pasted them in a google sheet. The values show up as linked text, not hyperlink formulas, and are still linked correc
Ryan Tarpine's Example helped a lot. Thanks!
With the code below, you can replace all embedded links by standard HYPERLINK formulas within a selected Range. Please note, that the Advanced Sheets Service must be activated.
function embeddedURLsToHyperlink() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getActiveSheet();
var rows = sheet.getActiveRange().getValues();
var z = sheet.getActiveRange().getRowIndex();
var s = sheet.getActiveRange().getColumn();
for (var r = 0; r < rows.length; r++) {
var row = rows[r];
for (var c = 0; c < row.length; c++) {
var val = row[c];
if (val) {
var targetRange = sheet.getRange(r+z, c+s).getA1Notation();
var result = Sheets.Spreadsheets.get(spreadsheet.getId(), {
ranges: sheet.getName() + "!" + targetRange,
fields: 'sheets.data.rowData.values'
});
if (result.sheets[0].data[0].rowData[0].values[0].hyperlink) {
var url = result.sheets[0].data[0].rowData[0].values[0].hyperlink;
var text = result.sheets[0].data[0].rowData[0].values[0].effectiveValue.stringValue;
sheet.getRange(r + z, c + s).setFormula('=HYPERLINK("' + url + '","' + text + '")');
}
}
}
}
}
I you want to process the full sheet, replace lines 4-6 by the following code:
var rows = sheet.getDataRange().getValues();
var z = 1;
var s = 1;