Đối Tượng Workbook Trong Excel VBA - Học Excel Online Miễn Phí
Có thể bạn quan tâm
Đối tượng Workbook trong Excel VBA là đối tượng đại diện cho một file Excel và là đối tượng chúng ta sẽ làm việc cùng khi muốn tự động hóa các thao tác liên quan đến Workbook như tạo Workbook mới, lưu Workbook, mở Workbook, đóng Workbook …
Cách tham chiếu đến đối tượng Workbook
Trong trường hợp bạn đang làm việc với nhiều Workbook trong một Instance của phần mềm Excel, bạn cần biết cách để tham chiếu chính xác đến Workbook bạn cần. Chúng ta có một số đối tượng để phân biệt như sau
Đối tượng ThisWorkbook
Đối tượng ThisWorkbook là một đối tượng thuộc loại Workbook, khi bạn gõ đoạn code sau vào cửa sổ Immediate (View > Immediate Window) thì cũng sẽ nhận được tên kiểu là Workbook:
?typename(ThisWorkbook)ThisWorkbook trong trường hợp này là chính Workbook mà code VBA/Macro của bạn đang được thực thi.
Đối tượng ActiveWorkbook
Đối tượng ActiveWorkbook là một đối tượng thuộc loại Workbook, khi bạn gõ đoạn code sau vào cửa sổ Immediate (View > Immediate Window) thì cũng nhận được tên kiểu là Workbook:
?typename(ActiveWorkbook)ActiveWorkbook là Workbook đang được người dùng chọn bằng chuột, đang ở phía trước các Workbook khác, đang có focus, hoặc là Workbook được gọi bởi phương thức Activate của đối tượng Workbook:
Tham chiếu tới Workbook bằng tên file Excel:
Set wb = Application.Workbooks("Book1.xlsx").Activate Tham chiếu tới Workbook số thứ tự khi mở ra:
Set wb = Application.Workbooks(2).ActivateVà tất nhiên, bạn cũng có thể gọi Activate trên đối tượng ThisWorkbook
Set wb = ThisWorkbook.ActivateTham chiếu tới Workbook trong VBA Excel
Vì Workbook là một đối tượng, nên khi khai báo biến và khởi tạo giá trị, chúng ta phải dùng từ khóa Set
Các cách để tham chiếu tới Workbook như sau:
' Tham chiếu tới ThisWorkbook Set wb1 = ThisWorkbook ' Tham chiếu tới ActiveWorkbook Set wb2 = ActiveWorkbook ' Mở Workbook tại đường dẫn và tham chiếu tới Workbook đó Set wb3 = Workbooks.Open("_đường_dẫn_tới_file_excel") ' Tham chiếu tới Workbook bằng số thứ tự Set wb4 = Workbooks(3) ' Tham chiếu tới Workbook bằng tên file Excel Set wb5 = Workbooks("Book1.xlsx") ' Tham chiếu tới Workbook mới được tạo ra Set wb6 = Workbooks.AddCách đóng Workbook trong VBA Excel
Sau khi đã tham chiếu và làm việc với Workbook, chúng ta có thể đóng Workbook bằng Code VBA. Để đóng Workbook, chúng ta gọi phương thức Close trên biến Workbook chúng ta đã tham chiếu tới. Ví dụ để đóng một Workbook và lưu lại những thay đổi đã được thực hiện trên Workbook đó, chúng ta code như sau:
Sub close_wb() Dim wb As Workbook Set wb = Workbooks.Open("C:\Book1.xlsx") wb.Close Savechanges:=True End SubĐể đóng một Workbook và không lưu bất kỳ thay đổi nào, bạn có thể dùng đoạn code như sau:
Sub close_wb() Dim wb As Workbook Set wb = Workbooks.Open("C:\Book1.xlsx") wb.Close Savechanges:=False End SubNhư vậy, với việc đóng Workbook, thì chúng ta có thể sử dụng thêm tham số Savechanges để có thể thực hiện lưu hoặc không lưu những thay đổi trên Workbook.
Cách mở một Workbooks trong VBA Excel
Để mở một Workbook trong VBA Excel, chúng ta có thể sử dụng phương thức Open như sau
Sub open_wb() Dim wb As Workbook Set wb = Workbooks.Open("C:\Book1.xlsx") ' Làm việc tiếp với đối tượng wb End SubLưu Workbook với code VBA Excel
Để lưu một Workbook trong code VBA Excel thì chúng ta có một số phương thức hay sử dụng như sau
Lưu Workbook sử dụng phương thức save
Trong trường hợp bạn muốn lưu Workbook lại thường xuyên để đề phòng cho trường hợp mất điện, lưu những thay đổi trong khi làm việc, thì bạn có thể gọi phương thức save trên đối tượng Workbook như sau
Sub save_wb() Dim wb As Workbook Set wb = Workbooks.Open("C:\Book1.xlsx") wb.Save End SubLưu Workbook sử dụng phương thức SaveAs
Để lưu Workbook với một tên khác, vào một đường dẫn khác, thì chúng ta có thể gọi phương thức SaveAs trên đối tượng Workbook như sau:
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 SubNếu kết hợp với việc tách dữ liệu từ một File ra nhiều file, thì trong khi chạy vòng lặp để tách dữ liệu, thì bạn sẽ cần gọi SaveAs và thay đổi đường dẫn tùy theo file Excel đang được tách ra. Nhưng để xử lý trường hợp này, bạn nên dùng phương thức SaveCopyAs như hướng dẫn ở đoạn ngay sau đây.
Lưu Workbook sử dụng phương thức SaveCopyAs
Một ứng dụng lý tưởng để sử dụng SaveCopyAs chúng ta có thể nghĩ tới là dùng để sao lưu dữ liệu, ví dụ bạn sẽ chạy đoạn code để sao lưu dữ liệu vào một thư mục và đặt tên cho bản sao lưu theo thời gian chẳng hạn
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 SubHi vọng là qua bài viết này Thanh đã chia sẻ tới các bạn những thao tác hay dùng nhất với đối tượng Workbook trong VBA Excel. Một phần lớn những kiến thức này sẽ trở nên hữu dụng khi bạn kết hợp với các kiến thức trong khóa học VBA cùng Thanh tại địa chỉ:
Khóa học VBA cơ bản:
Tự động hóa Excel với lập trình VBA cho người mới bắt đầu
Toàn bộ các khóa học lập trình VBA:
Tham khảo toàn bộ các khóa học lập trình VBA
Từ khóa » Mở Workbook Bằng Vba
-
Đóng Và Mở File Excel Bằng VBA
-
Mở File Excel Trong VBA - VietTuts
-
Các Sự Kiện Và Thao Tác Với Workbook Bằng VBA
-
Tổng Hợp Các Code VBA Excel Thao Tác Với Workbook Chỉ Trong Nháy ...
-
Hướng Dẫn Luôn Mở Workbook ở ô A1 Trong Excel Bằng VBA
-
Đóng Và Mở File Excel Bằng VBA - ự Học Excel VBA
-
Đóng Và Mở File Excel Bằng VBA - Freetuts
-
[Tool Ex Test]Mở Một File Excel Khác Và Lấy Thông Tin ở File đó ...
-
Tạo File Excel đóng Tất Cả Các Workbook đang Mở Bằng VBA
-
HƯỚNG DẪN HOÀN CHỈNH VỀ ĐỐI TƯỢNG WORKBOOK TRONG ...
-
Hướng Dẫn Cách Tạo Mới Một Workbook Và Tự động Lưu ... - YouTube