Vba 如何在word文档的每个部分上下添加文本?

Vba 如何在word文档的每个部分上下添加文本?,vba,ms-word,Vba,Ms Word,我想能够添加标签的模板自动使用phpword。 Phpword允许您使用${tagname}创建块${/tagname}围绕一块文本() 我想创建一个宏,根据内容页的每个部分自动添加一个标记。 到目前为止,我们已经尝试了获取所有标题的GetCrossReferenceItems(wdRefTypeHeading)。从那里我想转到正文中标题前的一行,并添加一个标记。 但是我正在尝试将选择移到这里。使用selection.find将在目录页中查找文本 以下是我的WIP代码: Sub AddTags(

我想能够添加标签的模板自动使用phpword。 Phpword允许您使用${tagname}创建块${/tagname}围绕一块文本()

我想创建一个宏,根据内容页的每个部分自动添加一个标记。 到目前为止,我们已经尝试了获取所有标题的GetCrossReferenceItems(wdRefTypeHeading)。从那里我想转到正文中标题前的一行,并添加一个标记。 但是我正在尝试将选择移到这里。使用selection.find将在目录页中查找文本

以下是我的WIP代码:

Sub AddTags()

Dim Rng As Range
Dim I, J As Integer
Set Rng = ActiveDocument.Content
Dim astrHeadings As Variant

' GetCrossReferenceItems(wdRefTypeHeading) returns an array with references to all headings in the document
astrHeadings = ActiveDocument.GetCrossReferenceItems(wdRefTypeHeading)
   
For I = LBound(astrHeadings) To UBound(astrHeadings)
    
    'split on spaces
    Dim Words() As String
    Words = Split(Trim(astrHeadings(I)))
    intials = ""
    
    For J = 1 To UBound(Words)
       intials = intials & Left(Words(J), 1)
    Next
    
    
    'index of first word
    Start = InStr(1, astrHeadings(I), Words(1), vbTextCompare)
    
    
    Found = Selection.Find.Execute(FindText:=Trim(Right(astrHeadings(I), Len(astrHeadings(I)) - Start)))
    
    Rng = ActiveDocument.Range(Start:=Selection.Start, End:=ActiveDocument.Range.End)
    
    Selection.GoTo What:=wdGoToLine, Which:=wdGoToPrevious, Count:=1
    
    Debug.Print intials
    Selection.TypeText ("${" & intials & "}")
Next        
End Sub

“节”一词在词中有非常具体的含义。你对标题的引用表明你没有像单词那样使用tern“Section”。请您回顾一下您对“单词”部分的使用,并相应地编辑您的文章。@freeflow谢谢您的评论,正确的术语是什么?我指的是页眉和页眉下方的正文,直到下一个页眉/副标题为止。这是一个不会不小心混淆问题的术语。到目前为止,您的澄清表明您对单词部分根本不感兴趣,只对标题和文本感兴趣,直到下一个标题。如果标题正确,您可以通过查找非大纲级别10的段落(即标题),然后搜索后续段落,直到再次找到非大纲级别10的段落来处理故事范围(wdmaintextstory)。术语“部分”在Word中具有非常特殊的含义。你对标题的引用表明你没有像单词那样使用tern“Section”。请您回顾一下您对“单词”部分的使用,并相应地编辑您的文章。@freeflow谢谢您的评论,正确的术语是什么?我指的是页眉和页眉下方的正文,直到下一个页眉/副标题为止。这是一个不会不小心混淆问题的术语。到目前为止,您的澄清表明您对单词部分根本不感兴趣,只对标题和文本感兴趣,直到下一个标题。如果标题设置正确,您可以通过查找非大纲级别10的段落(即标题),然后搜索后续段落,直到再次找到非大纲级别10的段落,来处理故事范围(wdmaintextstory)。