2017-08-28 102 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)。 –