Để sao chép dữ liệu từ Excel sang tệp Word bằng VBA chúng ta cần truy cập ứng dụng Word bằng Excel VBA. Trong bài viết này, Gitiho sẽ cùng bạn học cách mở một ứng dụng Word, thêm tài liệu và sao chép, dán dữ liệu từ Excel vào nó.
Các bước thực hiện sao chép dữ liệu từ tệp Excel đều được thực hiện dễ dàng từ Excel, bạn sẽ không cần phải tương tác với tài liệu Word. Quy trình sao chép dữ liệu Excel sang Word bằng VBA như sau:
Tuy nhiên trước khi thực hiện quy trình này bạn cần lưu ý các vấn đề sau:
Hãy bắt đầu với một ví dụ cụ thể để bạn hiểu rõ hơn nhé!
Xem thêm: Tìm hiểu về cách tự tạo hàm Excel trong VBA
Đoạn mã dưới đây là một ví dụ về cách bạn có thể sao chép một số phạm vi Excel và dán nó vào một tài liệu Word mới sau đó lưu nó vào ổ đĩa để sử dụng sau này:
'VBA Code To Write to Copy data from Excel to A Document
Sub ExcelToWord()
'Using Early Binding
Dim wordApp As Word.Application
Dim mydoc As Word.Document
'Creating a new instance of word only if there no other instances
Set wordApp = New Word.Application
'Making word App Visible
wordApp.Visible = True
'Creating a new document
Set mydoc = wordApp.Documents.Add()
'copying the content from excel sheet
ThisWorkbook.Worksheets("sheet1").Range("A1:g20").Copy
'Pasting on the document
mydoc.Paragraphs(1).Range.PasteExcelTable _
LinkedToExcel:=False, _
WordFormatting:=False,
RTF:=False
'saving the document
mydoc.SaveAs2 "MyDoc"
'closing the document
mydoc.Close
'Emptying the Clipboard
CutCopyMode = False
End Sub
Xem thêm: Làm thế nào để sử dụng hàm InputBox trong VBA Excel?
Sau đây, mình sẽ giải thích từng bước trong đoạn mã trên để bạn hiểu rõ hơn bằng cách sử dụng các nhận xét:
1. Tạo các biến của ứng dụng và loại tài liệu Word
Dim wordApp As Word.Application
Dim mydoc As Word.Document
Ở đây chúng ta đã khai báo hai biến bắt buộc. Chúng ta có thể làm điều này vì chúng ta đã thêm tham chiếu vào ứng dụng Word. Bạn có thể làm điều này bằng cách đi tới các công cụ trong menu tìm tùy chọn tham chiếu và sau đó tìm tham chiếu Word.
2. Tạo một file Word mới nếu không file Word trước đó
Set wordApp = New Word.Application
Chúng ta đang xác định biến wordApp với một đối tượng kiểu Word.App bằng cách sử dụng từ khóa New. Thao tác này sẽ mở ứng dụng Word.
3. Làm cho ứng dụng Word hiển thị
wordApp.Vible = True
Hiển thị ứng dụng Word để chúng ta có thể làm việc với nó.
4. Tạo một tài liệu mới
Set mydoc = wordApp.Documents.Add()
Dòng mã này giúp chúng ta thêm một tài liệu mới vào Word bằng cách sử dụng hàm word.Documents.Add (). Điều này được lưu trữ trong biến mydoc
5. Sao chép nội dung từ trang tính Excel
ThisWorkbook.Worksheets("sheet1").Range("A1:G20").Copy
Ở đây chúng ta chỉ đơn giản là sao chép một phạm vi từ Excel.
6. Dán dữ liệu
LinkedToExcel:=False, _
WordFormatting:=False,
RTF:=False
Chúng ta đang sử dụng phương thức PasteExcelTable của Paragraph.Range trong mydoc để dán dữ liệu từ khay nhớ tạm.
7. Lưu tài liệu
mydoc.SaveAs2 "MyDoc"
Chúng ta đang lưu tài liệu với tên MyDoc
8. Đóng tài liệu
mydoc.Close
Sau đó, chúng ta đóng tài liệu bằng cách sử dụng chức năng Close
9. Làm trống Clipboard
CutCopyMode = False
Cuối cùng, chúng tôi giải phóng khay nhớ tạm để những lần khác sử dụng.
Đây là cách bạn có thể tạo một tài liệu Word mới và sao chép dữ liệu Excel vào nó bằng VBA.
Xem thêm: Hướng dẫn cách gọi Sub trong VBA qua các ví dụ
Gitiho hy vọng bài viết trên đã giúp bạn hiểu quá trình tạo một tài liệu Word mới và sao chép dữ liệu Excel vào Word bằng VBA. Nếu bạn có bất kỳ câu hỏi nào liên quan đến bài viết này hoặc về bất kỳ chủ đề VBA nào khác, hãy cho chúng mình biết trong phần bình luận bên dưới. Và đừng quên theo dõi chúng mình để xem thêm các bài viết bổ ích khác nhé!
Khóa học phù hợp với bất kỳ ai đang muốn tìm hiểu lại Excel từ con số 0. Giáo án được Gitiho cùng giảng viên thiết kế phù hợp với công việc thực tế tại doanh nghiệp, bài tập thực hành xuyên suốt khóa kèm đáp án và hướng dẫn giải chi tiết. Tham khảo ngay bên dưới!