从 Word 中的选定文本中提取超链接
Posted
技术标签:
【中文标题】从 Word 中的选定文本中提取超链接【英文标题】:Extracting hyperlinks from selected text in Word 【发布时间】:2021-12-14 15:17:29 【问题描述】:应在代码中更改哪些内容(可在 www.extendoffice.com 找到)以将其限制为文本的选定部分(不适用于整个文档)。
代码正在从一个 Word 文档中提取超链接到另一个。
Sub HyperlinksExtract()
Dim oLink As Hyperlink
Dim docCurrent As Document 'current document
Dim docNew As Document 'new document
Dim rngStory As StoryRanges
Set docCurrent = ActiveDocument
Set docNew = Documents.Add
For Each oLink In docCurrent.Hyperlinks
oLink.range.Copy
docNew.Activate
Selection.Paste
Selection.TypeParagraph
Next
Set docNew = Nothing
Set docCurrent = Nothing
End Sub
【问题讨论】:
试试Try For Each oLink In Selection.Hyperlinks
,可能因为docNew.Activate
而不起作用。你在docNew
的哪个位置粘贴?
不幸的是它不起作用。对于每个 oLink 在 Selection.Hyperlinks 中打开了新文档但为空。我只想以任何形式生成这些超链接的列表 - 现在它在新文档中,但也可以在 excel 中,甚至在与所选文本相同的文档中 - 只是为了在所选文本的末尾创建这些超链接的列表文本。
【参考方案1】:
诀窍是将选定的超链接存储在变量 selectedHyperlinks
中。
此外,我总是尽量避免复制/粘贴。因此,我使用Hyperlinks.Add
方法来插入指向新文档的链接
Sub HyperlinksExtract()
Dim docCurrent As Document
Dim docNew As Document
Set docNew = Documents.Add
Dim rgTarget As Range: Set rgTarget = docNew.Range
Dim selectedHyperlinks As Hyperlinks
Set selectedHyperlinks = Selection.Hyperlinks '<<< this is where the selected hyperlinks are stored in the variable
Dim oLink As Hyperlink
For Each oLink In selectedHyperlinks
rgTarget.Collapse wdCollapseEnd
docNew.Hyperlinks.Add rgTarget, oLink.Address, oLink.SubAddress, , oLink.TextToDisplay
rgTarget.Move wdParagraph, 1
rgTarget.InsertParagraphAfter
Next
End Sub
【讨论】:
以上是关于从 Word 中的选定文本中提取超链接的主要内容,如果未能解决你的问题,请参考以下文章
如何使用ruby中的电子表格gem从excel单元格中提取超链接地址?
php高手请进:正则提取超链接中的网址和标题,如果兼顾有双引号和单引号或没有引号的超链接?