Saltar al contenido

En Excel, ¿puedo usar un hipervínculo para ejecutar vba? macro?

Esta es el arreglo más válida que encomtrarás aportar, pero primero mírala detenidamente y analiza si es compatible a tu trabajo.

Solución:

esto funcionará para usted

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
        MsgBox "Row " & ActiveCell.Row & " is clicked"
End Sub

Sí, puede, siga los pasos simples a continuación para hacerlo:

  1. Selecciona la Celda donde quieres hacer el Hipervínculo
  2. Clic derecho –> Hipervínculo…
  3. Ingrese la Dirección de la Misma celda donde está haciendo el hipervínculo y Dé nombre al Enlace. Vea la imagen de abajo:

Asignar macro a un hipervínculo

  1. Haga clic en Aceptar.
  2. Se crea un hipervínculo.

Nota: Al hacer clic en este hipervínculo, no hará nada porque está asignado a la misma dirección de celda.

  1. Ahora presione Alt + F11
  2. Copie y pegue el siguiente código

Ejecute la macro de Excel haciendo clic en un hipervínculo

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)  
    'Check if the Target Address is same as you have given  
    'In the above example i have taken A4 Cell, so I am  
    'Comparing this with $A$4  
  
    If Target.Range.Address = "$A$4" Then  
        'Write your all VBA Code, which you want to execute  
        'Or Call the function or Macro which you have  
        'written or recorded.  
        MsgBox "Write your Code here to be executed"  
        Exit Sub  
    End If  
End Sub  

En el código anterior estamos comparando la dirección de la celda y luego ejecutando un conjunto de código o función. Hay otra manera de hacer esto también. Podemos comparar con el nombre de destino y ejecutar el código. En el ejemplo anterior, he dado el nombre del destino del hipervínculo como MyMacro.

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)  
    'Check if the Target Name is same as you have given  
    'In the above example i have given the Name of the HyperLink  
    'is MyMacro.  
  
    If Target.Name = "mymacro" Then  
        'Write your all VBA Code, which you want to execute  
        'Or Call the function or Macro which you have  
        'written or recorded.  
        MsgBox "Write your Code here to be executed"  
        Exit Sub  
    End If  
End Sub  

La forma más interesante de hipervínculo para ejecutar un macro, parece ser el próximo enfoque (fórmula de hipervínculo). No necesita ningún evento:

  1. Escriba una fórmula de hipervínculo en una celda. Esto también se puede hacer en VBA:
    Sub testCreateHyperlinkFunction()
       'Very important to have # in front of the function name!
       Range("A1:A5").Formula = "=HYPERLINK(""#MyFunctionkClick()"", ""Run a function..."")"
    End Sub

Un uso más espectacular será el siguiente enfoque, capaz de mantener el valor de las celdas iniciales del rango procesado (“A1:A5” en el ejemplo):

Sub testCreateHyperlinkFunctionBis()
  Dim rng As Range, arr As Variant, c As Range, i As Long
   Set rng = Range("A1:A5")
   arr = rng.Value
   For i = 1 To UBound(arr, 1)
     Range("A" & i).Formula = "=HYPERLINK(""#MyFunctionkClick()"", " & _
            IIf(IsNumeric(arr(i, 1)), arr(i, 1), """" & arr(i, 1) & """") & ")"
   Next i
End Sub
  1. Cree la función a llamar (en un módulo):
    Function MyFunctionkClick()
      Set MyFunctionkClick = Selection 'Do not miss this part!
      MsgBox "The clicked cell addres is " & Selection.row
    End Function
  1. Al hacer clic en la celda, la función MyFunctionkClick() carreras…

Reseñas y puntuaciones

Al final de todo puedes encontrar las referencias de otros sys admins, tú asimismo eres capaz dejar el tuyo si te gusta.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : / /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *