2015-10-12 2 views
0

Я хочу создать макрос, который при запуске вставляет ссылку, содержащуюся в буфер обмена, в текущую ячейку как гиперссылку. Я попытался с записью макроса следующий код был сгенерирован, который я изменил немного:Добавить текст в буфер обмена как гиперссылку на ячейку

Sub Macro1() 
' 
' Macro1 Macro 
' 

' 
    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="abc.com" _ 
     , TextToDisplay:="Link" 
End Sub 

Здесь вместо abc.com это должно быть что-то вроде «вставить текст в клавиатуре».

+0

http://stackoverflow.com/questions/9022245/get-text-from-clipboard-using-gettext-avoid- ошибки на пустом буфере обмена – DanL

ответ

0

Согласно @DanL комментарий, вот код, который нужно:

Sub Macro1() 
    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:=GetClipboardText() _ 
     , TextToDisplay:="Link" 
End Sub 

Function GetClipBoardText() as String 
    Dim DataObj As MSForms.DataObject 
    Set DataObj = New MsForms.DataObject '<~~ Amended as per jp's suggestion 

    On Error GoTo Whoa 

    '~~> Get data from the clipboard. 
    DataObj.GetFromClipboard 

    '~~> Get clipboard contents 
    GetClipBoardText = DataObj.GetText(1) 


    Exit Sub 
Whoa: 
    If Err <> 0 Then MsgBox "Data on clipboard is not text or is empty" 
End Sub 
Смежные вопросы