Eu tentei algo parecido com o que você está procurando. Infelizmente, não há fórmulas do Excel para retornar a URL incorporada de uma célula. A única maneira de recuperar isso é através do VBA.
- Você terá que criar um evento para capturar sempre que uma célula for alterada em um determinado intervalo. Esse intervalo deve cobrir as células de validação de dados.
Aqui está um exemplo para você começar a capturar quando uma célula muda:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range
' The variable KeyCells contains the cells that will
' cause an alert when they are changed.
Set KeyCells = Range("A1:C10")
If Not Application.Intersect(KeyCells, Range(Target.Address)) _
Is Nothing Then
' Display a message when one of the designated cells has been
' changed.
' Place your code here.
MsgBox "Cell " & Target.Address & " has changed."
End If
End Sub
Ajuste o intervalo mostrado aqui para o seu próprio alcance.
Certifique-se de colocar este código dentro de "ThisWorkbook":
Amostra:
Option Explicit
Function HyperLinkText(rg As Range)
Dim sFormula As String, S As String
Dim L As Long
Dim H As Hyperlink, HS As Hyperlinks
sFormula = rg.Formula
L = InStr(1, sFormula, "HYPERLINK(""", vbBinaryCompare)
If L > 0 Then
S = Mid(sFormula, L + 11)
S = Left(S, InStr(S, """") - 1)
Else
Set HS = rg.Worksheet.Hyperlinks
For Each H In HS
If H.Range = rg Then
S = H.Address
End If
Next H
End If
HyperLinkText = S
End Function
Não sei como você está familiarizado com o VBA. Se você precisar de ajuda adicional com as primeiras partes, me avise.