2016-03-08 182 views
1

所以我想创建一个代码来加速在Outlook中插入超链接。在Outlook主体中插入超链接

我试图让它如此,如果我已经复制了一个路径,我可以进入并键入Ctrl W,它会在这里插入单词的超链接。我的代码尝试是:

Sub InsertHyperlink() 
' 
' 
' 
On Error Resume Next 
ActiveDocument.Hyperlinks.Add Anchor:=Selection.Range, Address:= _ 
    "U:\plot.log", _ 
    SubAddress:="", ScreenTip:="", TextToDisplay:="here" 
End Sub 

我有关于如何更新我的代码,这样,会在Outlook中的工作(我编程在Word)和问题,使“U:\ plot.log”会实际上是复制的路径(不是记录宏时的复制路径)。

有没有人有任何建议?

+1

对不起,我忘了点击接受。再次感谢您的帮助! – broncos15

回答

2

设置为Word对象库的引用

Tools > References > add Word object Library

Option Explicit 
Sub Add_Hyperlinks() 
    Dim olNameSpace As Outlook.NameSpace 
    Dim wDoc As Word.Document 
    Dim rngSel As Word.Selection 

    If Application.ActiveInspector.EditorType = olEditorWord Then 
     Set wDoc = Application.ActiveInspector.WordEditor ' use WordEditor 
     Set olNameSpace = Application.Session 
     Set rngSel = wDoc.Windows(1).Selection ' Current selection 

     wDoc.Hyperlinks.Add rngSel.Range, _ 
     Address:="U:\plot.log", TextToDisplay:="Here is the link" 
    End If 

    Set wDoc = Nothing 
    Set olNameSpace = Nothing 

End Sub 
1

非常感谢你的帮助,我真的很感激!所以我对你的代码进行了一些细微的修改,试图将它粘贴到剪贴板上。

我的新代码如下。我是否需要添加任何错误陷印?另外,这个选项显式地做了什么?

Option Explicit 
Sub Add_Hyperlinks() 
    Dim olNameSpace As Outlook.NameSpace 
    Dim wDoc As Word.Document 
    Dim rngSel As Word.Selection 
    Dim DataObj As MSForms.DataObject 
    Set DataObj = New MSForms.DataObject 
    DataObj.GetFromClipboard 
If Application.ActiveInspector.EditorType = olEditorWord Then 
    Set wDoc = Application.ActiveInspector.WordEditor ' use WordEditor 
    Set olNameSpace = Application.Session 
    Set rngSel = wDoc.Windows(1).Selection ' Current selection 
    wDoc.Hyperlinks.Add rngSel.Range, _ 
    Address:=DataObj.GetText(1), TextToDisplay:="here" 
End If 
Set wDoc = Nothing 
Set olNameSpace = Nothing 
End Sub 
+0

我不认为你需要错误陷阱 - 也见[选项显式](https://msdn.microsoft.com/en-us/library/y9341s4f.aspx?f=255&MSPPError=-2147217396) – 0m3r