精华内容
下载资源
问答
  • VBA脚本可以实现从word文档的多个表中提取数据,每个表格的信息提取到一行。 Sub word2els() Set wdApp = CreateObject(“kwps.application”) path_ = ThisWorkbook.Path wdApp.Documents.Open (path_ & “”...

    该VBA脚本可以实现从word文档的多个表中提取数据,每个表格的信息提取到一行。

    Sub word2els()
    Set wdApp = CreateObject(“kwps.application”)
    path_ = ThisWorkbook.Path
    wdApp.Documents.Open (path_ & “” & “bbb.doc”)
    wdApp.Visible = True
    ThisWorkbook.Sheets(“sheet1”).Cells(1, 1) = “序号” ‘’’ 设置sheet1的第一行第一列单元格内容为“序号”
    ThisWorkbook.Sheets(“sheet1”).Cells(1, 2) = “用例标识” ‘’’ 设置sheet1的第一行第一列单元格内容为“用例标识”
    ThisWorkbook.Sheets(“sheet1”).Cells(1, 3) = “测试类型” ‘’’ 设置sheet1的第一行第一列单元格内容为“测试类型”

    n = wdApp.ActiveDocument.Tables.Count ‘’’'有多少个表格
    excel_line_no = 2
    For i = 1 To n
    zhs = wdApp.ActiveDocument.Tables(i).cell(2, 2) ‘’'提取第i个表格的第二行第三列单元格的内容保存到变量zhs中
    Version = wdApp.ActiveDocument.Tables(i).cell(3, 5) ‘’'提取第i个表格的第三行第五列单元格的内容保存到变量Version中
    env = wdApp.ActiveDocument.Tables(i).cell(3, 7) ‘’'提取第i个表格的第三行第七列单元格的内容保存到变量env中
    ThisWorkbook.Sheets(“Sheet1”).Cells(excel_line_no, 1) = zhs ‘’'将变量zhs的值写入到excel的sheet1的第’excel_line_no 行第1列
    ThisWorkbook.Sheets(“Sheet1”).Cells(excel_line_no, 2) = Version ‘’'将变量Version的值写入到excel的sheet1的第’excel_line_no 行第2列
    ThisWorkbook.Sheets(“Sheet1”).Cells(excel_line_no, 3) = env ‘’'将变量env的值写入到excel的sheet1的第’excel_line_no 行第3列
    excel_line_no = excel_line_no + 1
    Next
    wdApp.Application.Quit '关闭word文档
    Set wdApp = Nothing '释放对象变量的内存

    End Sub

    word文档如下:
    在这里插入图片描述
    提取结果如下:
    在这里插入图片描述

    展开全文
  • 那么客户的这种需求就涉及到需要对很多份word的报告(少则几十份,多则数百份)进行特定信息的提取并汇总到一张表格。往往这种需求是不能向客户收费的,属于一种增值的服务。 这种情况我们通常是怎么解决呢?大多数...

    在检测行业经常会碰到这样的一种情况:客户,尤其是关键客户,希望每个月知道自己在第三方实验室做了多少份测试,每份测试报告做了哪些测试项目,每个测试项目的测试结果等等信息。那么客户的这种需求就涉及到需要对很多份word的报告(少则几十份,多则数百份)进行特定信息的提取并汇总到一张表格。往往这种需求是不能向客户收费的,属于一种增值的服务。
    这种情况我们通常是怎么解决呢?大多数的做法是通过加班依靠人工逐份打开、查找、复制、粘贴。非常耗费时间而且枯燥乏味,为企业带来额外的人工成本。
    其实如果懂得使用excel的VBA功能,那么这类耗费数天的工作完全可以在几十分钟内就可以完成。今天我就给大家讲讲实现的方式。
    实现的思路:

    1. 通过遍历逐分打开word报告,复制word报告的内容到一张excel表。
    2. 根据关键词提取关键信息,对复制到excel表的关键信息进行提取并汇总到另外一张excel表。
      设计一张excel表用于装载word报告的内容,将word格式的内容转为excel格式,方便后续在excel表上使用vba进行信息的处理。
      在这里插入图片描述
      另设计一张excel表用于处理读取在excel的信息,对测试项目进行分类汇总处理。
      在这里插入图片描述
      设计单独一张表为操作界面,通过界面将需要提取的报告号放进指定列,设计按钮,给按钮编写任务代码,根据实际的应用场景,分为批量提取和单份提取两种选项。使用者只需要输入(单份提取)或批量导入报告,点击按钮就可以实现自动提取。
      在这里插入图片描述
      实现遍历Word文件打开、读取和关闭的实现代码如下:
      在这里插入图片描述
      根据具体情况再设计其它功能的实现,最终的目的 是实现自动化取代人工的信息提取。大家有什么类似的问题需要私下探讨的可以留言。
    展开全文
  • vba提取word表格实例,提取word里指定名称的表格信息等等
  • VBA提取文件夹内所有word文档中的表格数据。
  • 想要完整提取word文件中的图片,VBA宏中并没有相应的方法,在网络中能找的方法一般就2种,一种是另存为网页,然后在files文件夹下会自动产生图片,此方法有弊端,当一个图片重复使用则只会保存一份,当然这其实正常...

    想要完整提取word文件中的图片,VBA宏中并没有相应的方法,在网络中能找的方法一般就2种,一种是另存为网页,然后在files文件夹下会自动产生图片,此方法有弊端,当一个图片重复使用则只会保存一份,当然这其实正常,而且是按照浏览顺序产生的文件名,如图中所示:
    另存为网页文件夹
    这种还是比较简单的图片类型,但是如果你有需要顺序数据的需求的话,重复的图片会导致index错误。所以记录一种单独提取图片的方法,代码如下:

                    int picindex = 0;
                    foreach (Word.InlineShape item in _doc.InlineShapes)
                    {
                        if (item.Type == Word.WdInlineShapeType.wdInlineShapePicture ||
                            item.Type == Word.WdInlineShapeType.wdInlineShapeLinkedPicture)
                        {
                            FileStream fstream = new FileStream($@"{TempPath}\{picindex}.emf", FileMode.Create, FileAccess.Write);
                            var buffer = (byte[])item.Range.EnhMetaFileBits;
                            fstream.Write(buffer, 0, buffer.Length);
                            fstream.Close();
                            imageList.Add($@"{TempPath}\{picindex}.emf");
                            picindex++;
                            Thread.Sleep(200);
                        }
                    }
    

    遍历文档中的所有图片,以流的方式单独保存还可以自定义文件名,这里需要注意!必须添加延迟等待,因为需要等文档预加载完毕通过流传输的图片才正确,如果不添加延迟等待图片会丢失,固态硬盘可以忽略。

    展开全文
  • 使用VBA提取文件夹内所有word文档中的表格数据
  • VBA获取Word的数据

    千次阅读 2017-09-11 19:39:03
    Public Sub 获取Word的数据() Dim sFName As String, strFilt As String, strTitle As String Dim docApp As Word.Application, pg As Word.Paragraph Dim i As Long, str1 As String strFilt = "Wo...

    Public Sub 获取Word的数据()
        Dim sFName As String, strFilt As String, strTitle As String
        Dim docApp As Word.Application, pg As Word.Paragraph
        Dim i As Long, str1 As String
        
        strFilt = "Word文档(*.doc;*.docx;*.docm),*.doc;*.docx;*.docm,"
        strTitle = "打开Word文档"
        
        sFName = Application.GetOpenFilename _
            (filefilter:=strFilt, _
            Title:=strTitle)
        If sFName = "False" Then Exit Sub


        Set docApp = CreateObject("Word.Application")   '实例化Word对象变量
        docApp.Documents.Open sFName    '打开Word文档
        
        i = 1
        With docApp.ActiveDocument
            For Each pg In .Paragraphs  '处理Word中的每一个段落
                str1 = pg.Range.Text    '获取段落中的文本
                Worksheets("sheet2").Cells(i, 1) = str1
                 i = i + 1
            Next
        End With
        
        docApp.Quit '退出Word文档
        Set docApp = Nothing    '释放对象变量
    End Sub

    展开全文
  • 如何用VBA提取WORD文档里的图片

    千次阅读 2018-07-17 14:49:46
     Application.ScreenUpdating = False  Dim FileName As String  FileName = InputBox("请输入文件名")  Selection.Copy ... Documents.Add DocumentType:=wdNewBlankDocument ...
  • VBA读取word中的内容到Excel中 原文:VBA读取word中的内容到Excel中Public Sub Duqu() Dim myFile As String Dim docApp As Word.Application Dim docRange As Word.Range myFile = ThisWorkbo...
  • 使用word加载宏的方式将全文的图片提取出来,处理文档后,可以再还原回去。添加一次之后每次启动word自动加载。
  • VBA/VBScript提取Word(*.doc)文件中包含的图片(照片) 要处理的人事简历表是典型的Word文档,其中一人一份doc,里面包含有个人的照片,如果要把里面的照片复制出来就比较麻烦了,一般手动的做法是选择文件另存为...
  • 文件夹内已经汇总了几十上百篇Doc/Docx文档,可能是各部门的总结,可能是工会入会申请,或者其它半格式化(毕竟不是表格)内容,如果没有VBA帮忙,你就要挨个打开,之后copy-n-paste里面的特定内容到你的Excel表里;...
  • "请选择【WORD勘察报告】" .Filters.Clear .Filters.Add "Word文档", "*.doc;*.docx" If .Show Then iFileName = .SelectedItems(1) End If End With If iFileName = "False" Or Len(iFileName) = 0 Then Exit Sub ...
  • 在做数据筛选时,会要求提取带有特定关键词的短句。 楼主比较懒,代码只提供了提取关键词短句的部分,并未加入重复检测功能 待提取word文档格式如下:(关键词为XX) ...Sub 提取内容() Dim temp_text, tex...
  • 在使用VBA抓取Word文档内容时发现存放在形状里的文字是不能通过paragraphs读到的。如下图所示: 解决思路简述: 外圈for循环遍历Doc文档内所有形状对象得到它们的名字,知道了名字以后用“文本对象.shapes.Range...
  • VBA得到word中的超链接

    2019-10-02 03:15:43
    ' For i = 1 To Selection.Paragraphs.Count For j = 1 To Selection.Paragraphs(i).Range.Hyperlinks.Count MsgBox Selection.Paragraphs(i).Range.Hyperlinks(j).TextToDisplay MsgBox Selec...
  • '测试:将“abc@@eee”中的@@提取出来 Sub test() MsgBox GetValueByRegex("abc@@eee", "abc(.*?)eee") End Sub Function GetValueByRegex(ByVal OrgStr As String, ByVal PatternStr As String) Set re = ...
  • 3 VBA读取word到excel中

    千次阅读 2018-12-10 14:27:15
    案例: option explicit ...'创建一个word的Application对象,由w代表 set w=CreateObject("word.application")  '循环打开使用数字命名的各个word文档,由doc代表 for i=1 to 8  ...
  • Word和Excel 均屬於Microsoft office系列軟體,但兩個軟體的定位不一樣,Word屬於文字撰寫軟體,而Excel屬於數據試算軟體,然而有些資料若能同時運用兩個軟體的長處,事務運作起來將會事半功倍,因此整合使用兩個軟...
  • 天下苦Word久矣!Word不仅是个码字工具,还是个排版工具,而Word在排版方面经常遇到的问题,恐怕说个三天三夜都说不完!好不容易做完了100页的活动方案,交到处女座上司那里,他告诉我:“Word里面的图片要统一尺寸...
  • VBA 提取菜单和工具栏id号, 方便编程,也有利于程序调用office 软件
  • '对于一个由多文档合并起来的长文档,它的样式多而混乱以致于无法使用,会引起word崩溃 '对于这些样式,移除(即都统一为正文样式),并保留各种格式(变成不受样式控制的直接格式) Dim Para As Paragraph Dim ...
  • VBA:word表格导入excel

    千次阅读 2018-05-23 19:37:30
    Option Explicit Sub ImportWordTable() Dim wdDoc As Object Dim wdFileName As ...Dim tableNo As Integer 'table number in Word Dim iRow As Long 'row index in Excel Dim iCol As Integer 'column inde...
  • VBA提取字符串中的数字

    千次阅读 2021-04-26 15:15:28
    上一篇讲了用 python 提取字符串中的数字,这次用VBA来事项。总体思路和 python 是一样的,代码如下: Option Explicit Sub GetNumbers() Dim from_string As String, convert_numbers As String Dim i, j, k, ...
  • vba处理word图像

    2007-12-17 14:51:09
    vba word处理的一个例子
  • 朋友工作中有多个Word文件,每次做更新时都要更新文档内的日期,每次手工更改都比较耗费时间,加上公司电脑不能装未授权的软件,且只支持英文,于是就根据这个需求,参考一些网上的代码,并做了一些升级,增加了界面...
  • Office 图标精美漂亮,作为微软的官方图标,与 Windows 具有一致的风格 获取 Office 图标的唯一方法CommandBars.GetImageMso Private Sub ShowImages() On Error Resume Next Dim idx As Integer, imgIdx As ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,139
精华内容 455
关键字:

vba提取word内容