He buscado a lo largo y ancho, pero no puede encontrar una respuesta a esta simple pregunta. Quiero hacer una función personalizada en excel crear un hipervínculo.

Excel se ha construido en función de hipervínculos que funciona así:

=Hyperlink(link_location, display_text)

Quiero crear una función llamada CustomHyperlink que toma un parámetro, y devuelve un hipervínculo a un google de consulta con ese parámetro. Sólo por el bien de la pregunta, supongamos que el pasado parámetro es una cadena alfanumérica, sin espacios.

Esencialmente, llamando

=CustomHyperlink("excel") 

debe ser el mismo que el de llamar

=Hyperlink("http://www.google.com/search?q=excel", "excel")

Esto que parece tan sencilla, pero definitivamente no puede encontrar una manera de hacer esta función.

¿Alguien puede ofrecer algo de ayuda rápida?

InformationsquelleAutor Morglor | 2012-03-05

4 Comentarios

  1. 1

    Puedo ofrecer un parcial solución, que se actualización un hipervínculo existente. Esto sólo tiene sentido si usted lo está utilizando, como, por ejemplo

    CustomHyperlink(A1)

    fueron A1 contenga la serch plazo

    A utilizar,

    1. entrar en su UDF fórmula en una celda, por ejemplo, la =CustomHyperlink(A1)
    2. crear un hipervínculo en la celda (clic derecho, Hipervínculo…) . Esto puede ser cualquier hipervínculo, válido o no
    3. la búsqueda de un término en el que se hace referencia de celda, por ejemplo, en A1 poner excel

    Cuando éste se ejecuta se actualización el hipervínculo a Google el término de búsqueda introducido

    Function CustomHyperlink(Term As String) As String
        Dim rng As Range
    
        Set rng = Application.Caller
        CustomHyperlink = Term
    
        If rng.Hyperlinks.Count > 0 Then
            rng.Hyperlinks(1).Address = "http://www.google.com/search?q=" & Term
        End If
    End Function
    • Tiene el paso adicional de crear manualmente el enlace, pero es una muy ingeniosa solución y funciona bastante bien. Gracias!
  2. 0

    En el editor de VBA puede utilizar

    ThisWorkbook.FollowHyperlink Address:=(strWebsite), NewWindow:=True

    Que te llevará a ese sitio web específico, y sólo construir una función que para navegar hasta el sitio que usted necesita.

    • Si este fue envuelto en una hoja de cálculo UDF, a continuación, en cualquier recálculo de la página / libro etc. un nuevo brower ventana se cargará. Supongo que no sería lo ideal.
  3. 0

    Buena idea aunque esto no es posible.

    Que parecen querer tener la fórmula de la celda como una cosa (su función personalizada de llamadas) y, sin embargo, el valor de la otra (el hipervínculo /URL) que simplemente no es posible.

    De la manera correcta a través de VBA para agregar un hipervínculo es el uso de los Hipervínculos de la propiedad, pero no es posible llamar a esta propiedad, a través de una Hoja de cálculo de UDF (debido a la razón anterior).

    Lo que está mal con el solo uso de la incorporada en =Hyperlink() función de hoja de cálculo? Que efectivamente podría parametrizar su dirección URL como la siguiente (donde la celda A1 = Excel):

    =HYPERLINK("http://www.google.com/search?q="&A1)
  4. 0

    Esto no se puede hacer directamente por las razones creamyegg sugiere, pero hay una manera de lograr la funcionalidad aunque con un poco de rendimiento de la cuenta.

    Podría utilizar el Worksheet_Change evento para el seguimiento de la presencia de su UDF, a continuación, proceso en el hipervínculo de la adición no.

    Que usted necesita para configurar una función vacía para permitir que esto suceda, de lo contrario Excel va a tirar un error cada vez que entró =CustomHyperlink... en una celda.

    El de abajo debe trabajar, en realidad no tenía tiempo para probar.

    Private Sub worksheet_change(ByVal target As Range)
        Dim SearchValue As String
        If LCase(Left(target.Formula, 16)) = "=customhyperlink" Then
            SearchValue = Mid(target.Formula, 19, Len(target.Formula) - 20)
            target.Value = SearchValue
            target.Hyperlinks.Add target, "http://www.google.com/search?q=" & SearchValue, ,     "Search Google for " & SearchValue, SearchValue
        End If
    End Sub

    El rendimiento de consideración, por supuesto, la volátiles Worksheet_Change evento ya que esto realmente puede matar a un gran, libros complejos.

Dejar respuesta

Please enter your comment!
Please enter your name here