我正在尝试将一个宏(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。
答案 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。