ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

vba获取word文档中的标题

2021-07-20 19:01:11  阅读:187  来源: 互联网

标签:vba Selection word flag ActiveDocument 文档 Paragraphs Print


今天在看协议文档的时候,发现协议条目太多,不想每次写一个就到文档中找一个,我想把条目都写成以条目名称为名的txt中,这样放在项目中就可以做一个看一个,做完删除或者保留资料以后翻看也都是可以的,非常方便

于是写了个vba来处理这些word数据

下面见代码

Sub 六级标题全部写入txt()

    Dim wdSty$, strTxt$
    
    wdSty = "标题 6"
    
    With Selection
        .HomeKey unit:=wdStory, Extend:=wdMove '光标移到文档首
        .Find.ClearFormatting
        .Find.Style = ActiveDocument.Styles(wdSty) '设置查找文本的样式为wdSty(“标题1”)
    End With

    
    Open "D:\lcx\6.txt" For Output As #1
    
    
    '循环查找文档里所有为“标题1”样式的段落,
    
    Do While Selection.Find.Execute(findtext:="*^13", MatchWildcards:=True, Format:=True)
    
        strTxt = Selection.Text '获取符合样式的文本
        
        '写入文件
        Print #1, strTxt
        
        Selection.Move unit:=wdWord, Count:=1
        
        If Selection.MoveRight <> 1 Then '文档尾退出
            Exit Do
        Else
            Selection.MoveLeft
        End If
    Loop
    
    Close #1

End Sub




Sub 根据标题写入txt()

    Dim path As String, FileName As String, i As Integer, ic, flag
    
    ic = ActiveDocument.Paragraphs.Count
     
    Debug.Print ic
    
    flag = 0
    
    For i = 1 To ic
        
'        Debug.Print ActiveDocument.Paragraphs(i).Style
    
        If ActiveDocument.Paragraphs(i).Style = "标题 6" Then
            
            If flag > 0 Then Close #1
        
            Open "D:\lcx\" & ActiveDocument.Paragraphs(i).Range & ".txt" For Output As #1
            
            flag = flag + 1
        
            Debug.Print ActiveDocument.Paragraphs(i).Range
        
        ElseIf flag > 0 Then
            
            Print #1, ActiveDocument.Paragraphs(i).Range
            
        End If
        
    Next i
    
    If flag > 0 Then Close #1
    
    Debug.Print "条目总数:" & flag
    
End Sub

 

标签:vba,Selection,word,flag,ActiveDocument,文档,Paragraphs,Print
来源: https://www.cnblogs.com/LcxSummer/p/15036459.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有