Vba 复制链接';地址

Vba 复制链接';地址,vba,ms-office,ms-word,Vba,Ms Office,Ms Word,如何将超链接的地址复制到剪贴板 使用“录制宏”选项,我得到以下结果: Sub CopyHyperlink() Selection.Range.Hyperlinks(1).Range.Fields(1).Result.Select Selection.Copy End Sub 但是,这并没有给我想要的结果。请参见图片以比较实际结果和预期结果: 正如您所看到的,我的代码实际上是复制链接的文本,而不是它的地址 也许,应该有类似的东西 Selection.Range.Hyperlin

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

使用“录制宏”选项,我得到以下结果:

Sub CopyHyperlink()
    Selection.Range.Hyperlinks(1).Range.Fields(1).Result.Select
    Selection.Copy
End Sub
但是,这并没有给我想要的结果。请参见图片以比较实际结果和预期结果:

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

也许,应该有类似的东西

Selection.Range.Hyperlinks(1).Address
但它根本不起作用


如何使其正常工作?

假设您使用了
选项
,因为您是使用宏录制器录制的,您应该根据您的工作簿进行更改

插入以下库:

工具->参考->Microsoft Forms 2.0对象库

并使用以下代码:

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

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

假设您使用了
选择
,因为您是使用宏录制器录制的,您应该根据您的工作簿进行更改

插入以下库:

工具->参考->Microsoft Forms 2.0对象库

并使用以下代码:

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

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

第一步,不要使用
选择
。第二步,您是否在对象浏览器(F2)中搜索以查看是否存在
超链接
类及其成员是什么?您好。好了,给你。你打算把它粘贴到哪里?如果你想在代码中的某个地方使用它,你可以跳过整个剪贴板/复制部分。我是VBA新手,老实说,在使用JavaScript之后,这是非常困难的。第一步,不要使用
选择
。第二步,您是否在对象浏览器(F2)中搜索以查看是否存在
超链接
类及其成员是什么?您好。好了,给你。你打算把它粘贴到哪里?如果你想在代码中的某个地方使用它,你可以跳过整个剪贴板/复制部分。我是VBA新手,老实说,在JavaScript之后,这是非常困难的。升级,尽管我怀疑OP的意思是将它粘贴到工作簿的某个地方,这将使整个剪贴板的事情变得毫无意义。只要抓住地址,写在你需要的地方。@Mat'smugh谢谢。因为OP提到了剪贴板,我理解他想把它复制到剪贴板上,这样他就可以在其他平台上使用它。如果他只是想复制它,这些都不是你所说的必需的。@Tehscript它按预期工作,非常感谢。顺便说一下,在我的Word 2016中,菜单(工具>参考)中缺少库。我使用了变通方法——也就是说,单击Insert>Userform。但我不确定这是最好、最准确的方法。可以找到另一个信息。上传,尽管我怀疑OP的意思是将它粘贴到工作簿的某个地方,这将使整个剪贴板的事情变得毫无意义。只要抓住地址,写在你需要的地方。@Mat'smugh谢谢。因为OP提到了剪贴板,我理解他想把它复制到剪贴板上,这样他就可以在其他平台上使用它。如果他只是想复制它,这些都不是你所说的必需的。@Tehscript它按预期工作,非常感谢。顺便说一下,在我的Word 2016中,菜单(工具>参考)中缺少库。我使用了变通方法——也就是说,单击Insert>Userform。但我不确定这是最好、最准确的方法。可以找到另一个信息。