Đối tượng Workbook trong Excel VBA là một trong những đối tượng được sử dụng thường xuyên nhất trong khi tự động hóa bất kỳ tác vụ nào với VBA. Bài này cung cấp các phương thức hay sử dụng của đối tượng Workbook.
Mỗi đối tượng Workbook tương ứng với một file excel.
Các phương thức của Workbook giúp chúng ta thực hiện các hành động khác nhau với Excel Workbooks. Ví dụ, chúng ta có thể Kích hoạt một Workbook và Xóa một Workbook hoặc Move Workbook. Và chúng ta cũng có thể Protect và UnProtect Workbooks.
Các phương thức của đối tượng Workbook
Dưới đây là các phương thức được sử dụng thường xuyên của đối tượng Workbook trong VBA:
Phương thức | Mô tả |
---|---|
Activate | Để kích hoạt một Workbook. |
Calculate | Để làm mới tất cả tính toán trong một Workbook. |
Close | Để close một Workbook. |
Save | Để save một Workbook. |
SaveAs | Để SaveAs một Workbook. |
SaveCopyAs | Để SaveCopyAs một Workbook. |
Phương thức Activate
Phương thức Activate của đối tượng Workbook trong VBA sẽ giúp bạn kích hoạt một Workbook cụ thể. Rất hữu ích khi bạn mở nhiều workbooks và muốn truy cập một Workbook cụ thể để thao tác hoặc đọc một số dữ liệu từ Active Workbook.
Tại sao chúng ta cần phải kích hoạt một Workbook bằng VBA?
Khi chúng ta phải xử lý nhiều workbooks (nhiều file excel) và bạn muốn đọc hoặc ghi vào một Workbook cụ thể thì bạn phải kích hoạt Workbook đó.
Ví dụ 1: Activate Workbook trong VBA với tên của Workbook
Ví dụ 2: Activate Workbook trong VBA với chỉ số của Workbook
Ví dụ 3: Activate Workbook trong VBA với ThisWorkbook
Sử dụng ThisWorkbook bạn có thể activate Workbook chứa macro đang chạy như sau:
Note: với Workbook đang được activate, tức là Workbook mà đang được chọn. Khi đó mọi thao tác đọc và ghi từ macro sẽ ảnh hưởng trực tiếp đến nó.
Tạo biến tham chiếu đến Workbook
Vấn đề: Khi bạn phải làm việc với nhiều workbooks (nhiều file excel), mỗi Workbook có nhiều Worksheet. Bạn phải sử dụng phương thức Activate với hết Workbook này đến Workshet khác để đọc hoặc ghi dữ liệu từ chúng, điều này có thể dẫn đến mã rối rắm, khó hiểu khiến bạn lúng túng.
Giải quyết vấn đề
Để giải quyết vấn đề trên, có một giải pháp cho bạn đó là với mỗi Workbook bạn tạo ra một biến tham chiếu. Sau đó, bất cứ khi nào muốn sử dụng (Activate) Workbook nào bạn chỉ cần tham chiếu đến biến tương ứng.
Ví dụ:
Sau đó, khi nào bạn sử dụng đến hai đối tượng wbInput, wbOutput thì nó tự động được kích hoạt, Khi đó bạn không cần phải gọi phương thức Activate nữa.
Có 6 cách để khởi tạo đối tượng Workbook
Từ khóa Set được sử dụng để để khởi tạo đối tượng Workbook.
Có 6 cách để khởi tạo đối tượng Workbook như sau:
Phương thức Close
Bạn có thể đóng một Workbook (tương ứng một file excel) bởi việc sử dụng phương thức Close của đối tượng Workbook trong Excel VBA.
Cú pháp:
Ví dụ 1: Close Workbook trong VBA với Savechanges: = True
Trong ví dụ trên, chúng ta tạo ra một biến có tên là wb trong câu lệnh đầu tiên. Chúng ta đã sử dụng phương thức ‘Open’ của workbook object để mở một bảng tính có tên là “D:\myFile.xlsx” và sau đó gán nó cho đối tượng wb trong câu lệnh thứ hai. Cuối cùng trong câu lệnh thứ ba, chúng ta đã sử dụng phương thức ‘Close’ của đối tượng workbook để đóng lại trên bảng tính đã xác định. Cuối cùng chúng ta đã đề cập đến ‘Savechanges: = True’, có nghĩa là nếu chúng ta đã thực hiện bất kỳ thay đổi trong bảng tính thì nó sẽ lưu các thay đổi.
Ví dụ 2: Close Workbook trong VBA với Savechanges: = False
Ví dụ trên giống như ví dụ 1. Sự khác biệt là chúng ta sử dụng ‘Savechanges:=False’, điều đó có nghĩa là nếu chúng ta thực hiện bất kỳ thay đổi trong bảng tính nó sẽ không được lưu lại.
Ví dụ 3: Close Workbook đang được activate
Ví dụ trên đóng bẳng tính đang được chọn và không lưu lại những gì thay đổi.
Phương thức Save
Chúng ta có thể lưu bảng tính bằng cách sử dụng phương thức ‘Save’ của đối tượng Workbook trong Excel VBA.
Cú pháp:
Ví dụ 1: Save Workbook trong VBA
Trong ví dụ trên, chúng ta đã tạo ra biến có tên wb trong câu lệnh đầu tiên. Chúng ta đã sử dụng phương thức ‘Add’ của đối tượng Workbook để tạo ra bảng tính mới và sau đó gán nó cho đối tượng wb trong câu lệnh thứ hai. Cuối cùng trong câu lệnh thứ ba, chúng ta đã sử dụng phương thức ‘Save’ của đối tượng Workbook để lưu lại bảng tính vừa tạo.
Câu hỏi: Trong ví dụ trên, bảng tính trên đã được tạo ra và lưu ở đâu?
Trả lời: Trong ví dụ trên bảng tính trên đã được lưu tại thư mục Documents.
Ví dụ 1: Save Workbook hiện tại (đang được kích hoạt)
Trong ví dụ trên mọi thay đổi của Workbook đang được kích hoạt sẽ được lưu lại.
Note: Đối tượng ActiveWorkbook đại diện cho bảng tính hiện tại mà đang kích hoạt.
Phương thức SaveAs
Chúng ta có thể lưu bảng tính bằng cách sử dụng phương thức ‘SaveAs’ của đối tượng Workbook trong Excel VBA.
Cú pháp:
Ví dụ: SaveAs Workbook trong VBA
Trong ví dụ trên, chúng ta đã tạo ra biến có tên wb trong câu lệnh đầu tiên. Chúng ta đã sử dụng phương thức ‘Add’ của đối tượng Workbook để thêm bảng tính mới và sau đó gán nó cho đối tượng wb trong câu lệnh thứ hai. Cuối cùng trong câu lệnh thứ ba chúng ta đã sử dụng phương thức ‘SaveAs’ của đối tượng Workbook để lưu bảng tính ở vị trí khác và tên file là “D:\test\Sample.xlsx” (Bạn có thể thay đổi tên tập tin theo ý muốn của bạn).
Phương thức SaveCopyAs
Với phương thức SaveCopyAs của đối tượng Workbook trong VBA, bạn có thể lưu một bản sao của Workbook đang mở.
Tại sao cần sử dụng phương thức SaveCopyAS?
Đôi khi bạn muốn lưu bảng tính với những thay đổi và bạn không muốn sửa đổi bảng tính đã mở. Vì vậy, chỉ cần bạn cần phải sử dụng phương thức ‘SaveCopyAs’ của đối tượng Workbook.
Cú pháp:
Ví dụ: SaveCopyAs Workbook trong VBA
Các thuộc tính của đối tượng Workbook
Dưới đây là các thuộc tính được sử dụng thường xuyên của đối tượng Workbook trong VBA:
Properties | Mô tả |
---|---|
Path | Để lấy ra đường dẫn tuyệt đối của Workbook. |
FullName | Để lấy ra tên đầy đủ đối của Workbook. |
Sheets | Lấy ra một collection của Charts và Worksheets.. |
Worksheets | Để lấy ra tất cả các Worksheet của Workbook. |
No comments:
Post a Comment