提取路徑、文件名
- 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控制數組縱向長度,在excel裡就是行數。
If t <> 0 Then End Ifif語句判斷是否存在表格,沒有就執行其他循環。
有就執行內循環。
For i = 1 To t ' # 內層循環讀寫表格 Next iFor循環執行內層循環讀寫表格。
執行核心 - 外循環
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這段外循環是用來打開目錄下不同文檔。
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當待提取文檔不為空串就一直執行。
180行,5列的900個數據的二維表,10秒完成統計工作。
私信發送 關鍵詞 獲取代碼下載,提供代碼修改服務。
關鍵詞:VBA501
閱讀更多 編程助力職場
的文章
關鍵字:
Word
Excel
表格