Chắc hẳn bạn đã gặp nhiều khó chịu khi phải di chuyển tới các Worksheet trong 1 file Excel có nhiều Sheet. Việc sử dụng thanh SheetTab để di chuyển khá chậm chạp và tốn nhiều thời gian, nhiều thao tác của bạn. Vậy hãy làm việc này trở nên thú vị hơn bằng cách tạo combobox để di chuyển tới các Sheet trong file Excel nào.
Xem nhanh
Giả sử chúng ta có 1 file Excel gồm nhiều sheet như sau:
Trong đó:
Để việc di chuyển giữa các Sheet được dễ dàng hơn, chúng ta có thể tạo 1 danh sách chọn, trong danh sách này sẽ có chứa tên các Sheet
Trước hết chúng ta cần tạo ra 1 combobox. Trong thẻ Developer chúng ta bấm chọn Insert, trong đó chọn tiếp Combobox trong mục ActiveX Controls
Nếu bạn chưa biết thẻ Developer ở đâu thì tham khảo bài viết này:
Cách hiện thẻ Developer để ghi Macro hoặc viết code VBA trong Excel
Tiếp theo chúng ta sẽ vẽ combobox đó ra 1 vị trí bất kỳ.
Để quản lý các đối tượng trong Excel được hiệu quả, chúng ta cần đổi tên để cho dễ nhớ và dễ gọi ra khi cần. Trong combobox vừa tạo, chúng ta bấm chuột phải và chọn Properties
Trong mục (Name) chính là tên của combobox. Mặc định trong Excel khi tạo Combobox sẽ có tên là ComboBox và Số thứ tự của combobox được tạo.
Muốn đổi tên, chúng ta sẽ thay chữ ComboBox1 trong mục (Name) thành tên gọi theo ý muốn. Lưu ý là tên này không được sử dụng dấu cách, không bắt đầu bằng 1 con số hoặc bằng 1 ký tự đặc biệt nào đó.
Ví dụ: Đổi tên thành cbChonSheet (chữ cb là viết tắt của combobox, mục đích sử dụng combobox là Chọn Sheet trong file)
Trong thao tác này, chúng ta hình dung rằng cần phải đạt được yêu cầu sau:
Như vậy việc cần làm bao gồm:
Các bước thực hiện như sau:
Trong cửa sổ viết code của Worksheet_Activate chúng ta viết lệnh như sau:
Trong đó:
Kết quả: Khi bấm vào sheet MENU và chọn tới combobox cbChonSheet thì chúng ta sẽ thấy xuất hiện danh sách như sau:
Xem thêm:
Hướng dẫn sử dụng vòng lặp For.. Next trong VBA
Do mỗi đối tượng của Combobox đều chính là tên của các Sheet, do đó khi chọn 1 nội dung bất kỳ, chúng ta sẽ hình dung đó chính là câu lệnh
“Tên Sheet được chọn”.Select
Việc thay đổi nội dung được chọn trong Combobox chính là sự kiện Combobox_Change. Trong cửa sổ VBA chúng ta làm như sau:
Những điều cần chú ý khi viết code cho sự kiện Combobox_Change:
Vì vậy chúng ta phải kết hợp thêm logoc IF trong Private Sub cbChonSheet_Change như sau:
Private Sub cbChonSheet_Change()
If cbChonSheet.Value <> “” Then
Worksheets(cbChonSheet.Value).Select
End If
End Sub
Trong đó:
Đến đây chúng ta đã hoàn thành được những việc phải làm rồi. Hãy đóng cửa sổ VBA lại và quay trở về Workbook để kiểm tra thành quả nào.
Chúc các bạn thành công!
Xem thêm:
Hướng dẫn cách mở userform bằng thao tác double click VBA Excel
Hướng dẫn cách tạo danh sách chọn cho combobox trong userform VBA Excel
Việc sử dụng VBA trong excel rất thú vị phải không nào. Ngoài ra VBA giúp ích rất nhiều trong công việc: giúp bạn tăng tốc trong quá trình xử lý trên Excel, giúp lập các báo cáo tự động, điều khiển các chương trình khác như Word, Power Point, Outlook… giúp biến file Excel của bạn trở thành 1 phần mềm chuyên nghiệp…
Để có thể học VBA một cách đầy đủ, có hệ thống, bạn hãy tham gia khoá học VBA101 – VBA cơ bản dành cho người mới bắt đầu của hệ thống Học Excel Online. Hiện nay hệ thống đang có nhiều ưu đãi khi bạn đăng ký khóa học này.