ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: 梧叶沙沙

[原创] Excel与Word数据交互【带案例】

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2020-5-30 18:10 | 显示全部楼层
梧叶沙沙 发表于 2019-11-6 13:03
案例一:Excel提取Word表格简历

以下为Word简历表中的具体结构,需要批量提取到Excel中。这里面就是 ...

案例1和案例2如何整合一次性完成?

TA的精华主题

TA的得分主题

发表于 2020-5-30 18:15 | 显示全部楼层
梧叶沙沙 发表于 2019-11-6 13:03
案例一:Excel提取Word表格简历

以下为Word简历表中的具体结构,需要批量提取到Excel中。这里面就是 ...

案例一中,word第二页和第一页有换行符,第二页表格如何定义?

TA的精华主题

TA的得分主题

发表于 2020-10-6 17:10 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2020-10-7 16:36 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2020-10-7 22:49 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2020-11-28 19:47 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
感谢楼主分享

TA的精华主题

TA的得分主题

发表于 2020-11-28 22:05 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
谢谢老师分享,努力学习。。。

TA的精华主题

TA的得分主题

发表于 2021-1-10 22:07 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

谢谢楼主分享

TA的精华主题

TA的得分主题

发表于 2021-1-10 22:21 | 显示全部楼层

我有一个从word读取数据的vba,不能运行。能不能帮忙看一下。

TA的精华主题

TA的得分主题

发表于 2021-1-10 22:22 | 显示全部楼层
Sub 从Word中提取数据到Excel中()
  Dim WrdDocApp As Object, FSO As Object, wordFilePath, wordFilename, arr(), i&, j&, k1&, k2&, r&, rr&
  Application.ScreenUpdating = False
  Set WrdDocApp = CreateObject("Word.Application")    '用Set关键词创建Word应用程序对象!
  Set FSO = CreateObject("Scripting.FileSystemObject") '文件系统对象
  Set wordFilePath = FSO.GetFolder(ThisWorkbook.Path)  '获取文件夹的路径
  
  wordFilename = Dir(wordFilePath & "\*.doc*") '循环查找Word,可以适应不同版本 具体提取哪类文件,根据文件扩展名进行处理
  Do While wordFilename <> ""  '在目录中循环
   
  On Error Resume Next
'  WrdDocApp.Visible = False 'Word应用程序不可见
'  Set WrdDoc = WrdDocApp.Documents.Open(wordFilePath & "\" & wordFilename)    '打开这个Word文件!
  Set WrdDoc = GetObject(wordFilePath & "\" & wordFilename) '使用此代码 ,打开Word文件 视窗会自动隐藏(给人的感觉是没有打开做的操作)
  
  With WrdDoc.Tables(1) '提取Word文件内第1页的第1个表格内容
    For i = 5 To .Rows.Count  '在第1个表格中从第5行到总行数中循环
      If WorksheetFunction.Clean(.cell(i, 1).Range.Text) = "收件人:" Then  '第1个收货人
        Exit For
      Else
        If WorksheetFunction.Clean(.cell(i, 1).Range.Text) <> "" Then k1 = k1 + 1 '得到第1个型号的个数
      End If
    Next i
   
   
    If k1 > 0 Then  '型号的个数不等于0
        ReDim arr(1 To k1, 1 To 10)  '重新定义数组arr
        If k1 > 0 Then '第1个型号的个数大于0
          arr(1, 1) = WorksheetFunction.Clean(.cell(1, 2).Range.Text) '客户名称
          arr(1, 2) = WorksheetFunction.Clean(.cell(1, 4).Range.Text) '发货日期
          arr(1, 3) = WorksheetFunction.Clean(.cell(2, 2).Range.Text) '收件人
          arr(1, 4) = WorksheetFunction.Clean(.cell(6, 1).Range.Text) '合同号
          arr(1, 5) = WorksheetFunction.Clean(.cell(6, 2).Range.Text) '产品名称
          arr(1, 6) = WorksheetFunction.Clean(.cell(6, 3).Range.Text) '产品型号
          arr(1, 7) = WorksheetFunction.Clean(.cell(6, 5).Range.Text) '数量
          arr(1, 8) = WorksheetFunction.Clean(.cell(6, 6).Range.Text) 'T8订单号
         
        End If
        
        If k1 > 1 Then '第1个型号的个数大于1
          For r = 1 To k1 - 1  '提取第1个型号之后的
            arr(r + 1, 4) = WorksheetFunction.Clean(.cell(5 + r, 1).Range.Text) '合同号
            arr(r + 1, 5) = WorksheetFunction.Clean(.cell(5 + r, 2).Range.Text) '产品名称
            arr(r + 1, 6) = WorksheetFunction.Clean(.cell(5 + r, 3).Range.Text) '产品型号
            arr(r + 1, 7) = WorksheetFunction.Clean(.cell(5 + r, 5).Range.Text) '数量
            
          Next r
        End If
        
      
        End If
      
    End With
    Range("A" & Cells(Rows.Count, 4).End(3).Row + 1).Resize(k1, 10) = arr '把提取的内容赋值给Excel工作表
    Erase arr  '重新初始化arr数组
    k1 = 0: ''重新k1,k2
    With Range("A2:J" & Cells(Rows.Count, 4).End(3).Row) '设定格式
    .Font.Size = 11: .Borders.Value = 1
    .HorizontalAlignment = xlCenter
    .VerticalAlignment = xlCenter
    End With
    Range("H2:H" & Cells(Rows.Count, 4).End(3).Row).HorizontalAlignment = xlLeft  '设定格式
    Columns("A:J").EntireColumn.AutoFit '自动栏宽
'  WrdDoc.Close    ' 关闭Word文件
    WrdDocApp.Quit  '关闭Word程序
    Set WrdDocApp = Nothing '释放Word程序
    wordFilename = Dir
  Loop '结束循环
Application.ScreenUpdating = True
End Sub
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-6-11 18:31 , Processed in 0.040015 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表