【问题标题】:Copy link's address复制链接地址
【发布时间】:2017-08-28 18:34:56
【问题描述】:

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

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

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

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

如您所见,我的代码实际上是复制链接的文本,而不是地址。

应该是这样的

Selection.Range.Hyperlinks(1).Address

但它根本不起作用。

如何让它正常工作?

【问题讨论】:

  • 第一步,不要使用Selection。第二步,您是否在对象浏览器 (F2) 中搜索是否有Hyperlink 类,它的成员是什么?
  • 那么,你去吧。你打算把它粘贴到哪里?如果您打算在代码中的某处使用它,则可以跳过整个剪贴板/复制部分。
  • @Mat'sMug 谢谢,非常有用。我是 VBA 新手,老实说,在 JavaScript 之后,它非常难。

标签: vba ms-office ms-word


【解决方案1】:

假设你使用了Selection,因为你是用宏录制器录制的,你应该根据你的工作簿来改变它。

插入以下库:

工具 -> 参考资料 -> 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

【讨论】:

  • 赞成,尽管我怀疑 OP 的意思是将其粘贴到工作簿中的某个位置,这会使整个剪贴板变得毫无意义。只需抓住地址并将其写在您需要的任何地方。
  • @Mat'sMug 谢谢。由于 OP 提到了剪贴板,我知道他想将其复制到剪贴板,以便例如他可以在其他平台上使用它。如果他只是想复制它,你说的这些都不需要。
  • @Tehscript 它按预期工作,非常感谢。顺便说一句,在我的 Word 2016 中,菜单中缺少该库(工具 > 参考)。我使用了解决方法from here - 也就是说,单击“插入”>“用户表单”。但我不确定这是最好和最准确的方法。其他信息可以在here找到。
猜你喜欢
  • 2016-05-13
  • 2020-04-14
  • 2020-08-18
  • 2012-06-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-13
相关资源
最近更新 更多