web-dev-qa-db-fra.com

Puis-je utiliser une formule Excel pour extraire l'emplacement du lien d'un lien hypertexte dans une cellule?

J'ai une feuille de calcul avec un grand nombre de cellules contenant des hyperliens dont le texte d'affichage est différent de l'emplacement de l'hyperlien

c'est à dire:

_ {emplacement de la cellule: A1} _

display text = "Site Info"

(hyperlink location = " http://www.mylocation.com "} _

Existe-t-il une formule Excel qui me permet d'accéder à la chaîne de texte de l'emplacement du lien hypertexte?

Idéalement, cela ressemblerait à ceci:

FORMULA (A1) = " http://www.mylocation.com "

38
Gigamosh57

Vous pouvez utiliser une macro:

  • Ouvrez un nouveau classeur.
  • Entrez dans VBA (Appuyez sur Alt + F11)
  • Insérer un nouveau module (Insertion> Module)
  • Copier et coller la fonction définie par l'utilisateur Excel ci-dessous
  • Sortez de VBA (Appuyez sur Alt + Q)
  • Utilisez cette syntaxe pour cette fonction Excel personnalisée: = GetURL (cell, [default_value])

     Function GetURL(cell As range, Optional default_value As Variant)
     'Lists the Hyperlink Address for a Given Cell
     'If cell does not contain a hyperlink, return default_value
          If (cell.range("A1").Hyperlinks.Count <> 1) Then
              GetURL = default_value
          Else
              GetURL = cell.range("A1").Hyperlinks(1).Address
          End If
    End Function
    
49
Igor O

Je n'avais besoin que d'extraire l'adresse d'une seule cellule, alors j'ai trouvé cette petite fonction pratique:

Au lieu d'une macro "force brute", vous pouvez également créer une fonction définie par l'utilisateur qui extrairait et renverrait l'URL de tout lien hypertexte sur lequel il était pointé:

Function GetURL(rng As Range) As String
     On Error Resume Next
     GetURL = rng.Hyperlinks(1).Address 
End Function

Dans ce cas, vous pouvez le placer où vous voulez. Si vous souhaitez, par exemple, que l'URL d'un lien hypertexte dans A1 soit répertoriée dans la cellule C25, vous devez saisir la formule suivante dans la cellule C25:

= GetURL (A1)

http://Excel.tips.net/T003281_Extracting_URLs_from_Hyperlinks.html

13
Matthew Lock
function EXTRACT_URL(input) {

  var range = SpreadsheetApp.getActiveSheet().getRange(input);
  var re = /^.+?\(\"(.+?)\",.+?$/;
  if (input.indexOf(':') != -1) {
    var formulas = range.getFormulas();
    for (var i in formulas) {
      for (var j in formulas[i]) {
        formulas[i][j] = formulas[i][j].replace(re, "$1");
      }
    }
    return formulas;
  } else {
    return range.getFormula().replace(re, "$1");
  }

}
0