How to extract URL from Link in Google Sheets using a formula?

后端 未结 9 1974
面向向阳花
面向向阳花 2020-12-13 09:33

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

9条回答
  •  别那么骄傲
    2020-12-13 10:06

    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;
    

提交回复
热议问题