Đối tượng Workbook trong Excel VBA đại diện cho một file Excel. Nắm vững cách thao tác với Workbook là chìa khóa để tự động hóa các công việc như tạo, lưu, mở và đóng file Excel, giúp bạn tiết kiệm thời gian và nâng cao hiệu suất làm việc.
Mở Đầu
Trong môi trường Excel VBA, việc tương tác với Workbook là điều thiết yếu. Bài viết này sẽ hướng dẫn bạn cách tham chiếu, mở, đóng và lưu Workbook bằng VBA, giúp bạn dễ dàng điều khiển file Excel một cách tự động. Chúng ta sẽ cùng tìm hiểu các đối tượng và phương thức quan trọng để làm chủ Workbook trong VBA.
Các Cách Tham Chiếu Đến Đối Tượng Workbook
Khi làm việc với nhiều Workbook cùng lúc, việc tham chiếu chính xác đến Workbook mong muốn là rất quan trọng. Dưới đây là một số đối tượng giúp bạn phân biệt và tham chiếu đúng Workbook:
Đối Tượng ThisWorkbook
ThisWorkbook
đại diện cho Workbook chứa mã VBA đang được thực thi. Bạn có thể kiểm tra kiểu dữ liệu của nó bằng cách gõ lệnh sau vào cửa sổ Immediate:
?typename(ThisWorkbook)
Kết quả trả về sẽ là “Workbook”.
Đối Tượng ActiveWorkbook
ActiveWorkbook
là Workbook đang được người dùng chọn (Workbook đang hiển thị và có focus). Bạn cũng có thể kiểm tra kiểu dữ liệu của ActiveWorkbook
tương tự như ThisWorkbook
:
?typename(ActiveWorkbook)
Một Workbook trở thành ActiveWorkbook khi được click chuột, được gọi bởi phương thức Activate
, hoặc nằm ở phía trước các Workbook khác. Ví dụ:
Set wb = Application.Workbooks("Book1.xlsx").Activate
Hoặc tham chiếu theo thứ tự mở file:
Set wb = Application.Workbooks(2).Activate
Bạn cũng có thể kích hoạt ThisWorkbook
thành ActiveWorkbook
:
Set wb = ThisWorkbook.Activate
Tham Chiếu Workbook trong VBA Excel
Vì Workbook là một đối tượng, nên khi khai báo biến và gán giá trị, cần sử dụng từ khóa Set
. Dưới đây là một số cách tham chiếu Workbook:
' Tham chiếu tới ThisWorkbook
Set wb1 = ThisWorkbook
' Tham chiếu tới ActiveWorkbook
Set wb2 = ActiveWorkbook
' Mở Workbook và tham chiếu
Set wb3 = Workbooks.Open("_đường_dẫn_tới_file_excel")
' Tham chiếu theo thứ tự
Set wb4 = Workbooks(3)
' Tham chiếu theo tên file
Set wb5 = Workbooks("Book1.xlsx")
' Tham chiếu Workbook mới tạo
Set wb6 = Workbooks.Add
Đóng Workbook bằng VBA
Sau khi làm việc xong, bạn có thể đóng Workbook bằng phương thức Close
.
Sub close_wb()
Dim wb As Workbook
Set wb = Workbooks.Open("C:Book1.xlsx")
wb.Close Savechanges:=True ' Lưu thay đổi
End Sub
Để đóng mà không lưu thay đổi:
Sub close_wb()
Dim wb As Workbook
Set wb = Workbooks.Open("C:Book1.xlsx")
wb.Close Savechanges:=False ' Không lưu thay đổi
End Sub
Tham số SaveChanges
cho phép bạn kiểm soát việc lưu thay đổi.
Mở Workbook bằng VBA
Sử dụng phương thức Open
để mở Workbook:
Sub open_wb()
Dim wb As Workbook
Set wb = Workbooks.Open("C:Book1.xlsx")
' Tiếp tục làm việc với wb
End Sub
Lưu Workbook bằng VBA
Có nhiều cách lưu Workbook trong VBA:
Phương thức Save
Dùng để lưu thay đổi thường xuyên, tránh mất dữ liệu:
Sub save_wb()
Dim wb As Workbook
Set wb = Workbooks.Open("C:Book1.xlsx")
wb.Save
End Sub
Phương thức SaveAs
Lưu với tên hoặc đường dẫn khác:
Sub save_wb()
Dim wb As Workbook
Set wb = Workbooks.Open("C:Book1.xlsx")
wb.SaveAs Filename:="_đường_dẫn_Tên_file.xlsx"
End Sub
Phương thức SaveCopyAs
Thường dùng để sao lưu, tạo bản sao với tên khác dựa trên thời gian:
Sub save_wb()
Dim wb As Workbook
Set wb = Workbooks.Open("C:Book1.xlsx")
wb.SaveCopyAs Filename:="_đường_dẫn_" & Format(Now, "hh_mm_ss") & "Tên_file.xlsx"
End Sub
Kết Luận
Bài viết đã hướng dẫn các thao tác cơ bản với đối tượng Workbook trong VBA Excel. Hy vọng những kiến thức này sẽ giúp bạn tự động hóa công việc với Excel hiệu quả hơn. Bạn có thể tìm hiểu thêm về VBA thông qua các khóa học trực tuyến hoặc tài liệu chuyên sâu.
Discussion about this post