04 涌动机巧之术:利用VBA批量把word表格转excel储存(二)

04 涌动机巧之术:利用VBA批量把word表格转excel储存(二)

提取路径、文件名

  • ph = "E:\\测试\" ' # 指定提取目录
  • fl = Dir(ph & "*.doc*") ' # 提取文件名

利用dir函数可以轻松获取目录下的文件名。

执行核心 - 内循环

  • If t <> 0 Then
  • For i = 1 To t ' # 内层循环读写表格
  • arr(s, 1) = WorksheetFunction.Clean(tbl(i).Cell(1, 2).Range)
  • arr(s, 2) = WorksheetFunction.Clean(tbl(i).Cell(1, 4).Range)
  • arr(s, 3) = WorksheetFunction.Clean(tbl(i).Cell(2, 2).Range)
  • arr(s, 4) = WorksheetFunction.Clean(tbl(i).Cell(2, 4).Range)
  • arr(s, 5) = WorksheetFunction.Clean(tbl(i).Cell(3, 1).Range)
  • s = s + 1 ' # 数组自增量
  • Next i
  • End If
  • 内层循环解决的是同一word文档内部不同表格取值问题。

    利用 tbl(i).Cell(1, 2).Range 获取word表格数据。

    利用 WorksheetFunction.Clean 清理文字格式。

    t = tbl.Count ,T就是表格数量。

    • s=1
    • s=s+1

    s控制数组纵向长度,在excel里就是行数。

  • If t <> 0 Then
  • End If
  • if语句判断是否存在表格,没有就执行其他循环。

    有就执行内循环。

  • For i = 1 To t ' # 内层循环读写表格
  • Next i
  • For循环执行内层循环读写表格。

    执行核心 - 外循环

  • Do While fl <> "" ' # 外层循环依次提取文档
  • fl = ph & fl ' # 待提取文档路径+文件名
  • Set wdc = wap.documents.Open(fl) ' # 打开待提取文档
  • Set tbl = wdc.tables ' # word表格实例化
  • wdc.Close ' # 循环内依次关闭word文档
  • Set wdc = Nothing ' # 清空word文档进驻内存
  • fl = Dir ' # 循环执行下一份文档
  • Loop
  • 04 涌动机巧之术:利用VBA批量把word表格转excel储存(二)

    这段外循环是用来打开目录下不同文档。

  • fl = ph & fl ' # 待提取文档路径+文件名
  • ph提取的是目录,fl提取的是文件名。

    ph&fl就是完整路径。

  • Set wdc = wap.documents.Open(fl) ' # 打开待提取文档
  • Set tbl = wdc.tables ' #
  • 两行语句分别表示wdc实例化、tbl实例化。

  • wdc.Close ' # 循环内依次关闭word文档
  • 外循环,打开关闭,打开关闭。

  • wdc.Close ' # 循环内依次关闭word文档
  • Set wdc = Nothing ' # 清空word文档进驻内存
  • wdc收尾工作,关闭,清理进驻内存。

  • fl = Dir
  • 循环执行下一份文档

  • Do While fl <> ""
  • Loop
  • 当待提取文档不为空串就一直执行。

    04 涌动机巧之术:利用VBA批量把word表格转excel储存(二)

    180行,5列的900个数据的二维表,10秒完成统计工作。

    04 涌动机巧之术:利用VBA批量把word表格转excel储存(二)

    私信发送 关键词 获取代码下载,提供代码修改服务。

    关键词:VBA501


    分享到:


    相關文章: