MS Excel 2003: extraer direcciones de hipervínculos (archivos y URL)

Los datos expuestos en este blog, son solo de índole informativo. Por favor realiza siempre una copia de seguridad antes de realizar cualquier cambio en tu proyecto.

MS Excel 2003: extraer direcciones de hipervínculos (archivos y URL)

Este tutorial de Excel muestra cómo escribir macros (con capturas de pantalla e instrucciones paso a paso) para extraer archivos y direcciones de hipervínculos web en Excel 2003 y versiones anteriores.

P: En Microsoft Excel 2003/XP/2000/97, tengo una hoja de cálculo que contiene direcciones de hipervínculos a archivos. Intento extraer las direcciones de hipervínculo de estos archivos, pero no obtengo las direcciones completas. La dirección completa debe ser:

C:My DocumentsPast ProjectsCentennialProgram Status Report.xls

pero solo obtengo:

....Past ProjectsCentennialProgram Status Report.xls

¿Hay alguna forma de obtener siempre la dirección completa del hipervínculo?

Respuesta: aquí hay dos funciones que puede incluir en su hoja de cálculo para extraer la dirección completa del hipervínculo documento o un URL.

Function HyperLinkText(pRange As Range) As String

   Dim ST1 As String
   Dim ST2 As String
   Dim LPath As String
   Dim ST1Local As String

   If pRange.Hyperlinks.Count = 0 Then
      Exit Function
   End If

   LPath = ThisWorkbook.FullName

   ST1 = pRange.Hyperlinks(1).Address
   ST2 = pRange.Hyperlinks(1).SubAddress

   If Mid(ST1, 1, 15) = ".........." Then
      ST1Local = ReturnPath(LPath, 5) & Mid(ST1, 15)
   ElseIf Mid(ST1, 1, 12) = "........" Then
      ST1Local = ReturnPath(LPath, 4) & Mid(ST1, 12)
   ElseIf Mid(ST1, 1, 9) = "......" Then
      ST1Local = ReturnPath(LPath, 3) & Mid(ST1, 9)
   ElseIf Mid(ST1, 1, 6) = "...." Then
      ST1Local = ReturnPath(LPath, 2) & Mid(ST1, 6)
   ElseIf Mid(ST1, 1, 3) = ".." Then
      ST1Local = ReturnPath(LPath, 1) & Mid(ST1, 3)
   Else
      ST1Local = ST1
   End If

   If ST2 <> "" Then
      ST1Local = "[" & ST1Local & "]" & ST2
   End If

   HyperLinkText = ST1Local

End Function

Function ReturnPath(pAppPath As String, pCount As Integer) As String

   Dim LPos As Integer
   Dim LTotal As Integer
   Dim LLength As Integer

   LTotal = 0
   LLength = Len(pAppPath)

   Do Until LTotal = pCount + 1
      If Mid(pAppPath, LLength, 1) = "" Then
         LTotal = LTotal + 1
      End If
      LLength = LLength - 1
   Loop

   ReturnPath = Mid(pAppPath, 1, LLength)

End Function

Luego puede hacer referencia a estas nuevas características en su hoja de cálculo.

Por ejemplo, en la celda B1 podrías ingresar lo siguiente:

=HyperLinkText(A1)
(Visited 14 times, 1 visits today)