2017-08-28 286 views
0

如何将超链接的地址复制到剪贴板?复制链接地址

使用“录制宏”选项,我得到这个:

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

但是,这并没有给我想要的结果。看图片来比较实际的和预期的结果:

enter image description here

正如你看到的,我的代码实际上是复制链接的文本,而不是它的地址。

也许,应该有类似

Selection.Range.Hyperlinks(1).Address 

,但它并不在所有的工作。

如何使其正常工作?

+0

步骤一,不使用'选择'工作。第二步,你是否在* Object Browser *(F2)中查找是否有超链接类,它的成员是什么? –

+0

嗨。 [Here are members](http://i.imgur.com/MllODRy.png) –

+0

所以,你去了。你打算在哪里粘贴它?如果你的意思是在代码中的某个地方使用它,你可以跳过整个剪贴板/复制部分。 –

回答

3

假设您已使用Selection,因为您使用宏记录器记录它,您应该根据您的工作簿更改它。

插入以下库:

工具 - >引用 - > Microsoft窗体2.0对象库

,并使用下面的代码:

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

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

Upvoted,虽然我怀疑OP意味着将其粘贴在工作簿中的某个地方,这将使整个剪贴板的事情没有意义。只需抓住地址并将其写入需要的地方即可。 –

+0

@ Mat'sMug谢谢。由于OP提到剪贴板,我明白他想将其复制到剪贴板,以便例如他可以在其他平台中使用它。如果他只是想复制它,就不会像你所说的那样。 – Tehscript

+0

@Tehscript它按预期工作,非常感谢。顺便说一下,在我的Word 2016中,菜单中缺少了库(工具>参考)。我使用了解决方法[从这里](https://stackoverflow.com/questions/35610429/why-do-i-not-see-the-microsoft-forms-2-0-object-library) - 这意味着,单击插入>用户表单。但我不确定这是最好还是最准确的方法。另一个信息可以在这里找到(https://stackoverflow.com/questions/35664768/cant-find-microsoft-forms-2-0-object-library-or-fm20-dll)。 –