㈠ 怎么是用VBA批量提取word文档指定内容到Excel
Sub abc()
Dim App, WrdDoc, MyPath, MyFile, BM, Str
Mypath = "文件实际路径\*.doc"        '请修改实际储存路径!
Set App = CreateObject("Word.Application")        '用Set关键字创建Word应用成序对象!
MyFile = Dir(Mypath)    ' 获得第一个WORD文档
do while MyFile <> ""    ' 遍历Mypath下面的所有WORD文档
    App.Visible = True
    Set WrdDoc = App.Documents.Open(MyFile)    '打开这个Word文件!
    for each BM in WrdDoc.Bookmarks    ' 遍历文档中的所有书签
         Str = BM.Range    ' 读取书签内容
    next BM
    WrdDoc.Close    ' 关闭文件
    MyFile = Dir    ' 下一个WORD文档
Loop
Set App = Nothing
End Sub
㈡ 如何用VBA取得Word文档中的标题前面的序号
Sub test()  
    Dim myRange As Range  
    Dim num as String, title as String  
  
    'Set ps = Selection.Bookmarks("\headinglevel").Range.Paragraphs  
    Set ps = ActiveDocument.Bookmarks("\headinglevel").Range.Paragraphs  
    For Each p In ps  
        Set myRange = p.Range  
        num = myRange.ListFormat.ListString   
        title = myRange.Text  
        MsgBox "编号:" & num  & vbCrLf & "标题内容:" & title  
    Next p  
      
    'Set myRange = Selection.Bookmarks("\headinglevel").Range.Paragraphs(1).Range  
    'MsgBox "编号:" & myRange.ListFormat.ListString & vbCrLf & "标题内容:" & myRange.Text  
End Sub  
另外附上一段把标题(Heading)序号取出并附加在标题内容后面的代码:
Sub ReplaceHeadingContent()  
    Dim myRange As Word.Range  
    Dim num As String, content As String  
      
    '取得所有书签  
    Set ps = ActiveDocument.Bookmarks("\headinglevel").Range.Paragraphs  
  
    '对书签中每一个段落进行处理  
    For Each p In ps  
        Set myRange = p.Range  
  
        With myRange  
            '把Range结束范围往前移一个字符,目的是为了不包括换行符  
            .MoveEnd Unit:=wdWord, Count:=-1  
  
            '取出段落序号  
            num = Trim(.ListFormat.ListString)  
              
            '取出Heading的内容  
            content = Trim(.Text)  
              
            '如果段落序号不为空,则把段落序号取出附加的标题内容后面  
            If Trim(num) <> "" Then  
                If num = "1.1.1.1.1." Or num = "1.1.1.1.1" Then  
                    MsgBox "到目标点了。"  
                End If  
                  
                If Right(num, 1) = "." Then num = Left(num, Len(num) - 1) '不需段落序号最后面的“.”  
                .Text = content & "<" & num & ">"  
            End If  
            'MsgBox "编号:" & num & vbCrLf & "标题内容:" & content  
        End With  
    Next p  
End Sub
㈢ 如何利用VBA代码或者脚本代码批量修改word文档的正文标题
操作步骤。
第一,首先将需要批量替换的多个Word文档放在同一文件夹下面。
第二,新建一空白Word文档,右击空白工具栏,单击“控件工具箱”,就可以看到屏幕上调出的控件工具箱。
第三,在控件工具箱上单击“命令按钮”,文档中就放置了一个按钮了。
第四,双击该按钮,进入VB代码编写模式,将以下代码复制进去。
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
Dim myPas As String, myPath As String, i As Integer, myDoc As Document
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "选择目标文件夹"
If .Show = -1 Then
myPath = .SelectedItems(1)
Else
Exit Sub
End If
End With
myPas = InputBox("请输入打开密码:")
With Application.FileSearch
.LookIn = myPath
.FileType = msoFileTypeWordDocuments
If .Execute > 0 Then
For i = 1 To .FoundFiles.Count
Set myDoc = Documents.Open(FileName:=.FoundFiles(i), Passworddocument:=myPas)
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "大家好"
.Replacement.Text = "你好"
.Forward = True
.Wrap = wdFindAsk
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = True
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
myDoc.Save
myDoc.Close
Set myDoc = Nothing
Next
End If
End With
Application.ScreenUpdating = True
End Sub
第五,保存上面代码,退出VB编辑模式,返回Word文档界面。
第六,单击选中该按钮,再单击控件工具箱的第一个按钮“退出设计模式”。
第七,进行测试:点击按钮,选择要放置多个WORD文档所在的文件夹,确定后即可完成!注意如果WORD文档没有加密的话,密码项就不填,直接确认。就会发现该文件夹下面的所有WORD文档中“大家好”已被替换为“你好”了。
㈣ VBA怎样实现 批量选择word文档读取其文件名并填表 的功能
SubTest()
Dimf,n,x,wb,fName
OnErrorResumeNext
Cells.Clear
'打开文件(可多选)
f=Application.GetOpenFilename("Word文件,*.docm,",1,"选择文件",MultiSelect:=True)
'遍历每个选择的文件
Forx=1ToUBound(f)
sFile=f(x)
'取文件名,并赋值给单元格
n=Len(sFile)-InStrRev(sFile,"")
fName=Right(sFile,n)
Cells(x,1)=Left(fName,InStr(fName,"")-1)'取1到空格前的字符
'Cells(x,1)=Left(fname,9)'取文件名的前9个字符
Cells(x,2)=Mid(fName,InStr(fName,"")+1,Len(fName)-InStr(fName,".")+1)'取空格后到点之前的字符
'Cells(x,2)=Mid(fName,10,Len(fName)-InStr(fName,".")+1)'从10开始取到点之前的字符
Nextx
EndSub
㈤ 怎样大量提取word的标题
具体操作步骤如下。
1、首先在word的页面,输入几个标题。如下图所示。

㈥ (VBA)怎么提取Word中指定级 标题中正文内容
在word工具栏中找到“式样”(就在)“字体”的旁边,选择“清除格式”所有标题就都没了。就可以随便提取了。
㈦ vba处理word获取各级标题及内容
两种可行的思路:
1、利用正则表达式提取;
2、利用VBA编程提取
㈧ VBA如何遍历WORD文档中的某一级标题
使用Find方法,看看是不是快了。
'样式、符合样式的当前段文本
 Dim wdSty$, strTxt$
    wdSty = "标题 1"
    With Selection
        .HomeKey unit:=wdStory, Extend:=wdMove'光标移到文档首
        .Find.ClearFormatting
        .Find.Style = ActiveDocument.Styles(wdSty)'设置查找文本的样式为wdSty(“标题1”)
    End With
'循环查找文档里所有为“标题1”样式的段落,
    Do While Selection.Find.Execute(findtext:="*^13", MatchWildcards:=True, Format:=True)
        strTxt = Selection.Text '获取符合样式的文本
     '.......在这里录入处理代码
        Selection.Move unit:=wdWord, Count:=1
        If Selection.MoveRight <> 1 Then'文档尾退出
            Exit Do
        Else
            Selection.MoveLeft
        End If
    Loop
㈨ 一个word的VBA中如何批量读取一个文件夹里面的word文件中的字段
我理解你说的字段应该是文件中一个表格中的某一个单元格
具体逻辑是这样的
1、用scripting.filesystemobject 对象打开一个文件夹,遍历其中的所有WORD文件
2、打开WORD文件,读取文件中table(i) 对象的一个具体的单元格
完了。至于上面 i 的值及读取单元格的地址,要看你具体的文件
㈩ 如何利用VBA批量提取文件夹下所有Word文档的标题和指定段落
Sub test()
    Dim fso, fp, arr, wd, f, n%, fname$
    Set fso = CreateObject("scripting.filesystemobject")
    Set fp = fso.getfolder(ThisWorkbook.Path)
    ReDim arr(1 To fp.Files.Count, 1 To 2)
    arr(1, 1) = "文件号": arr(1, 2) = "标题"
    Set wd = CreateObject("word.application")
    n = 1
    For Each f In fp.Files
        If Right(f, 3) = "doc" Or Right(f, 4) = "docx" Then
        n = n + 1: arr(n, 1) = fso.getbasename(f)
        fname = fso.getfilename(f)
        With wd.Documents.Open(ThisWorkbook.Path & "\" & fname, True, True)
            wd.Visible = True
            arr(n, 2) = .Paragraphs(2).Range
            .Close
        End With
        End If
    Next
    wd.Quit
    Sheets(1).[a1].Resize(UBound(arr), UBound(arr, 2)) = arr
End Sub
现在有一个文件夹下有N个Word文件,要将他们的文件名和文档内的第二段提取到Excel表格,如何通过VBA实现