【发布时间】:2020-02-11 21:19:59
【问题描述】:
我正在尝试处理包含超链接的 MS Word 文档中的一些文本。但是,我在理解 Range.Start 和 Range.End 正在返回的确切内容时绊倒了。 我在一个空文档中随机输入了一些单词,并添加了一些超链接。然后写了下面的宏……
Sub ExtractHyperlinks()
Dim rHyperlink As Range
Dim rEverything As Range
Dim wdHyperlink As Hyperlink
For Each wdHyperlink In ActiveDocument.Hyperlinks
Set rHyperlink = wdHyperlink.Range
Set rEverything = ActiveDocument.Range
rEverything.TextRetrievalMode.IncludeFieldCodes = True
Debug.Print "#" & Mid(rEverything.Text, rHyperlink.Start, rHyperlink.End - rHyperlink.Start) & "#" & vbCrLf
Next
End Sub
但是,#s 之间的输出与超链接不完全匹配,并且超出了一个或两个字符。那么如果 .Start 和 .End 不返回 char 位置,它们返回什么?
【问题讨论】:
标签: vba hyperlink ms-word range