in

¿Pegar un hipervínculo a la celda activa, desde el portapapeles, usando un botón de control Active X?

Tengo problemas para pegar un hipervínculo desde mi portapapeles. El objetivo es usar un botón Active X para pegar un hipervínculo copiado con la mano o el mouse que se encuentra en el portapapeles en la «celda activa» de mi hoja de trabajo. La hoja de trabajo está protegida, por lo que el botón debe desproteger la hoja, ejecutar el código para pegar el hipervínculo desde el portapapeles y luego proteger la hoja. Cualquier ayuda sobre este tema sería muy apreciada.

Idea básica: (Sé que este código no es correcto, solo lo uso como iniciador de conversación).

Private Sub CommandButton10_Click()
ActiveSheet.Unprotect Password:="Password1"
  Dim DataObj As MSForms.DataObject
    Set DataObj = New MSForms.DataObject
    DataObj.GetFromClipboard

    strPaste = DataObj.GetText(1)            <<<<certain something is missing after this line

    ActiveCell.Paste Link:=True
ActiveSheet.Protect Password:="Password1"
End Sub

1 respuesta
1

MSForms está en desuso. Utilice esta función:

Function Clipboard$(Optional s$)
    Dim v: v = s  'Cast to variant for 64-bit VBA support
    With CreateObject("htmlfile")
    With .parentWindow.clipboardData
        Select Case True
            Case Len(s): .setData "text", v
            Case Else:   Clipboard = .GetData("text")
        End Select
    End With
    End With
End Function

Lo llamas así:

Private Sub CommandButton10_Click()
    ActiveCell = Clipboard
End Sub

¿Te ayudó la respuesta?

Subscribirse
Notificar por
guest
0 Comentarios
Inline Feedbacks
Ver todas las Respuestas

¿Por qué cualquier mapa $f:M \to \mathbb{CP}^\infty$ es homotópico a un mapa $f_0:M \to \mathbb{CP}^1$ si $M$ es una variedad de 3?

¿Alguien puede explicar la precesión giroscópica?