VBA讀取word中的內容到Excel中,這類代碼的思路都是一致的,包括ADO、SQL、DELPHI、VB……
先聲明、創建一個對象 → 用此對象打開需要操作的文件、數據庫 → 從頭到尾循環一遍做某事 → 關閉文件 → 關閉對象 → 釋放對象。
Public Sub Duqu()
Dim myFile As String
Dim docApp As Word.Application
Dim docRange As Word.Range
myFile = ThisWorkbook.Path & "\Word文檔的名字" '指定Word文檔
Set docApp = New Word.Application
docApp.Documents.Open myFile
For i = 1 To docApp.ActiveDocument.Paragraphs.Count
With docApp.ActiveDocument
'If .Paragraphs.Count >= 4 Then
Set docRange = .Paragraphs(i).Range
cp = cp & docRange
'End If
End With
Next i
Range("a1") = cp
docApp.Quit
Set docRange = Nothing
Set docApp = Nothing
Set ws = Nothing
End Sub
另一類方法:
Sub MS_Word()
Dim wd As Object
Dim doc As Object
Set wd = CreateObject("Word.Application") ' 建立Word會話
wd.Visible = False ' 設定Word應用程序為不可見狀態
Set doc = wd.Documents.Open(ThisWorkbook.Path & Application.PathSeparator & "001 安全管理程序.Doc") ' 打開當前目錄下指定Word文件
doc.Tables(1).Cell(1, 2).Range = Cells(3, 1).Value ' Word文件第一個表的1行2列內容改為當前工作表的A3的內容
doc.Save ' 保存Word文件
doc.Close ' 關閉文件
wd.Quit ' 退出Word會話
Set doc = Nothing
Set wd = Nothing
End Sub
Dim wd As Object
Dim doc As Object
Set wd = CreateObject("Word.Application") ' 建立Word會話
wd.Visible = False ' 設定Word應用程序為不可見狀態
Set doc = wd.Documents.Open(ThisWorkbook.Path & Application.PathSeparator & "001 安全管理程序.Doc") ' 打開當前目錄下指定Word文件
doc.Tables(1).Cell(1, 2).Range = Cells(3, 1).Value ' Word文件第一個表的1行2列內容改為當前工作表的A3的內容
doc.Save ' 保存Word文件
doc.Close ' 關閉文件
wd.Quit ' 退出Word會話
Set doc = Nothing
Set wd = Nothing
End Sub