Word宏将文本转换为超链接

时间:2013-06-15 01:55:16

标签: vba excel-vba ms-word word-vba excel

我的word文档的结尾注释部分有大约400个链接。但是,链接只是常规文本,并且没有超链接到URL。

以下是我在最后的笔记中引用的一个例子:

Odgerel Tseveen,Ganbold Battsetseg,& Badmaarag Shagdarsuren。蒙古法律制度与法律:概述。纽约大学Hauser全球法学院课程。 2009年5月。http://www.nyulawglobal.org/globalex/Mongolia1.htm

如果我将光标放在链接的末尾并按空格键,则链接将变为活动状态。

我想通过创建一个能够识别链接的宏来自动化这个过程,而不必在每一个之后创建一个空格。

有人有什么想法吗?

2 个答案:

答案 0 :(得分:1)

Sub EndsToHLink()
    Dim eNote As Endnote
    Dim iFound As Integer
    Dim rLink As Range
    Dim iDot As Integer

    Application.ScreenUpdating = False
    For Each eNote In ActiveDocument.Endnotes
        'eNote.Range.Text = eNote.Range.Text & " "
        iFound = InStr(eNote.Range.Text, "http")
        iDot = 0
        If iFound > 0 Then
            If Right(eNote.Range.Text, 1) = "." Then iDot = 1
            Set rLink = eNote.Range
            rLink.SetRange Start:=eNote.Range.Start + iFound - 1, End:=eNote.Range.End - iDot
            rLink.Hyperlinks.Add rLink, rLink.Text
        End If

    Next eNote
    Application.ScreenUpdating = True
End Sub

你需要先测试一下!

答案 1 :(得分:0)

添加空格并不能以编程方式起作用。以下内容将结束注释转换为超链接。

Sub EndsToHLink()
    Dim eNote As Endnote

    Application.ScreenUpdating = False
    For Each eNote In ActiveDocument.Endnotes
        'eNote.Range.Text = eNote.Range.Text & " "
        eNote.Range.Hyperlinks.Add eNote.Range, "http://" & eNote.Range.Text
    Next eNote
    Application.ScreenUpdating = True
End Sub