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

后端 未结 9 1898
面向向阳花
面向向阳花 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:16

    After some update in 2020 all codes I have found on the Internet were broken, so here is my contribution:

    /** 
     * Returns the URL of a hyperlinked cell, if it's entered with control + k. 
     * Author: @Frederico Schardong based on https://support.google.com/docs/thread/28558721?hl=en&msgid=28927581 and https://github.com/andrebradshaw/utilities/blob/master/google_apps/convertHiddenLinks.gs 
     * Supports ranges
     */
    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.getRichTextValues();
      var output = [];
      for (var i = 0; i < formulas.length; i++) {
        var row = [];
        for (var j = 0; j < formulas[0].length; j++) {
          row.push(formulas[i][j].getLinkUrl());
        }
        output.push(row);
      }
      return output
    }
    

提交回复
热议问题