如何添加指向所有标题 1 样式文本的链接?
How to add links to all Heading 1 style text?
该代码旨在向所有标题 1 样式文本添加相同的 hyperlink。 (目的:单击任何标题可将您带到文档的顶部)。
它适用于第一个标题样式文本。它不会前进到下一个实例。
我发现这是由于添加了 hyperlink 的行造成的。删除此行后,将找到所有标题 1 样式的文本(但当然我无法添加 link)。
Sub addLinksToAllTextHavingCertainStyle()
Dim r As Range
Set r = ActiveDocument.Content
r.Find.ClearFormatting
Do
With r.Find
.Text = ""
.Replacement.Text = ""
.Style = "Heading 1"
.Forward = True
.Wrap = wdFindStop
.Format = True
.Execute
End With
r.Select 'for testing
ActiveDocument.Hyperlinks.Add Anchor:=r, Address:="", SubAddress:="_top", ScreenTip:=""
Loop
End Sub
您正在循环错误的代码部分。如您所写,您的代码循环整个查找,这意味着它每次都从头开始。
只是Find的执行需要循环,你设置的参数会保留。执行 Find 时,执行 Find 的范围被重新定义为找到的匹配项,因此在循环中您需要将范围折叠到末尾以避免匹配无休止 re-found.
Sub addLinksToAllTextHavingCertainStyle()
Dim r As Range
Set r = ActiveDocument.Content
With r.Find
.ClearFormatting
.Text = ""
.Replacement.Text = ""
.Style = "Heading 1"
.Forward = True
.Wrap = wdFindStop
.Format = True
End With
Do While r.Find.Execute = True
ActiveDocument.Hyperlinks.Add Anchor:=r, Address:="", SubAddress:="_top", ScreenTip:=""
r.Collapse wdCollapseEnd
Loop
End Sub
该代码旨在向所有标题 1 样式文本添加相同的 hyperlink。 (目的:单击任何标题可将您带到文档的顶部)。
它适用于第一个标题样式文本。它不会前进到下一个实例。
我发现这是由于添加了 hyperlink 的行造成的。删除此行后,将找到所有标题 1 样式的文本(但当然我无法添加 link)。
Sub addLinksToAllTextHavingCertainStyle()
Dim r As Range
Set r = ActiveDocument.Content
r.Find.ClearFormatting
Do
With r.Find
.Text = ""
.Replacement.Text = ""
.Style = "Heading 1"
.Forward = True
.Wrap = wdFindStop
.Format = True
.Execute
End With
r.Select 'for testing
ActiveDocument.Hyperlinks.Add Anchor:=r, Address:="", SubAddress:="_top", ScreenTip:=""
Loop
End Sub
您正在循环错误的代码部分。如您所写,您的代码循环整个查找,这意味着它每次都从头开始。
只是Find的执行需要循环,你设置的参数会保留。执行 Find 时,执行 Find 的范围被重新定义为找到的匹配项,因此在循环中您需要将范围折叠到末尾以避免匹配无休止 re-found.
Sub addLinksToAllTextHavingCertainStyle()
Dim r As Range
Set r = ActiveDocument.Content
With r.Find
.ClearFormatting
.Text = ""
.Replacement.Text = ""
.Style = "Heading 1"
.Forward = True
.Wrap = wdFindStop
.Format = True
End With
Do While r.Find.Execute = True
ActiveDocument.Hyperlinks.Add Anchor:=r, Address:="", SubAddress:="_top", ScreenTip:=""
r.Collapse wdCollapseEnd
Loop
End Sub