创建超链接并重命名超链接显示文本

时间:2018-02-01 19:40:26

标签: vba hyperlink ms-word

我正在尝试将一个宏(VBA)放在一起,将文本转换为word文档中的超链接。

我有以下VBA:

Sub ConvertURLTextsToHyperlinksInDoc()
  Dim objDoc As Document

  Set objDoc = ActiveDocument

  Word.Options.AutoFormatReplaceHyperlinks = True
  objDoc.Range.AutoFormat
End Sub

这一切都很好并且有效,但我也希望特定的超链接具有不同的显示文本。例如,Word文档包含https://www.microsoft.com/en-us/windows/get-windows-10?step=Win10Question1而不是高级,只是纯文本。我使用上面的VBA运行宏,并创建一个超链接。我需要它来创建一个超链接并将显示文本重命名为" Link"。目前使用上面的VBA我只能创建一个包含当前文本的超链接。

理想情况下,如果我有两个不同网站的链接,我希望将它们重命名为两个不同的名称,例如:

https://www.microsoft.com/en-us/windows/get-windows-10?step=Win10Question1至" Microsoft" https://www.msn.com/en-us/sports到" MSN"

加载项会更好,但我可以先关注Macro。

1 个答案:

答案 0 :(得分:0)

在您的现有代码之后,您可以插入:

Dim HLnk As Hyperlink, Rslt As Variant
For Each HLnk In ActiveDocument.Hyperlinks
  With HLnk
    .Range.Select
    Rslt = InputBox("Input the desired Hyperlink display text", "Edit Hyperlink Display", .TextToDisplay)
    If Rslt = "" Then
      Exit Sub
    Else
      .TextToDisplay = Rslt
    End If
  End With
Next

如果您不想以交互方式编辑显示文本,Word需要一些其他方法来识别每个链接所需的显示文本。这可能是硬编码到您的宏(使维护更多的苦差事)或通过在URL之前或之后立即添加额外的内容(例如«MSN»https://www.msn.com/en-us/sports)并修改您的代码以查找此类字符串并应用什么是«»作为.TextToDisplay。