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


    分享到:


    相關文章: