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 "
Vous pouvez utiliser une macro:
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
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
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");
}
}