2017-08-28 1 views
0

Comment puis-je copier l'adresse du lien hypertexte dans le presse-papiers?Copier l'adresse du lien

En utilisant l'option "Enregistrer une macro", je reçois ceci:

Sub CopyHyperlink() 
    Selection.Range.Hyperlinks(1).Range.Fields(1).Result.Select 
    Selection.Copy 
End Sub 

Mais, cela ne me donne pas le résultat souhaité. Voir l'image pour comparer les résultats réels et souhaités:

enter image description here

Comme vous le voyez, mon code est en fait la copie de texte de lien, au lieu de son adresse.

Probablement, il devrait y avoir quelque chose comme

Selection.Range.Hyperlinks(1).Address 

mais il ne fonctionne pas du tout.

Comment le faire fonctionner correctement?

+0

Première étape, ne pas travailler avec 'Selection'. Deuxième étape, avez-vous cherché dans le * Object Browser * (F2) pour voir s'il y avait une classe 'Hyperlink', et quels étaient ses membres? –

+0

Salut. [Voici les membres] (http://i.imgur.com/MllODRy.png) –

+0

Alors, voilà. Où comptez-vous le coller? Si vous voulez l'utiliser quelque part dans votre code, vous pouvez ignorer toute la partie presse-papiers/copie. –

Répondre

3

En supposant que vous avez utilisé Selection parce que vous l'avez enregistré avec un enregistreur de macros, vous devez le modifier en fonction de votre classeur.

Insérez la bibliothèque suivante:

Outils -> Références -> Microsoft Forms 2.0 Object Library

et utiliser le code suivant:

Sub CopyHyperlink() 
Dim clipboard As MSForms.DataObject 
Set clipboard = New MSForms.DataObject 

clipboard.SetText Selection.Hyperlinks(1).Address 
clipboard.PutInClipboard 
End Sub 
+2

Upvoted, bien que je soupçonne OP signifie de le coller quelque part dans le classeur, ce qui rendrait l'ensemble du bloc-notes inutile. Saisissez simplement l'adresse et écrivez-la où vous en avez besoin. –

+0

@ Mat'sMug merci. Depuis OP mentionne le presse-papiers, j'ai compris qu'il veut le copier dans le presse-papiers, de sorte qu'il peut par exemple l'utiliser dans une autre plate-forme. S'il veut simplement le copier, aucun de ceux-ci n'est nécessaire comme vous l'avez dit. – Tehscript

+0

@Tehscript Cela fonctionne comme prévu, merci beaucoup. En passant, dans ma Word 2016, la bibliothèque manquait dans le menu (Outils> Références). J'ai utilisé la solution de contournement [d'ici] (https://stackoverflow.com/questions/35610429/why-do-i-not-see-the-microsoft-forms-2-0-object-library) - cela signifie, cliquez sur Insérer > Userform. Mais je ne suis pas sûr que ce soit le meilleur et le plus précis. Une autre information pourrait être trouvée [ici] (https://stackoverflow.com/questions/35664768/cant-find-microsoft-forms-2-0-object-library-or-fm20-dll). –