Bạn tạo Drop List trong Excel (danh sách thả xuống) nhưng nó không hiển thị đầy đủ thông tin? Hãy sử dụng code mẫu và cách thay đổi kích thước Drop List bằng VBA này nhé.
Mục lục
Trong Data Validation của Excel có tùy chọn để chúng tạo Drop List (danh sách thả xuống) giúp việc nhập dữ liệu trong Excel nhanh chóng và hiệu quả hơn. Tuy nhiên, ở thiết lập mặc định thì danh sách dạng này dễ gặp một số lỗi như:
Vì những lỗi này mà việc nhập thông tin của bạn từ nhanh lại thành chậm, mất thời gian ngồi kiểm tra lại xem có phần nào chọn nhầm hay không. Excel cũng không có sẵn tính năng cho phép chúng ta thay đổi kích cỡ của danh sách này. Tuy nhiên, sử dụng VBA thì hoàn toàn có thể. Chúng mình đã chuẩn bị sẵn code mẫu và hướng dẫn chi tiết ngay dưới đây, cùng theo dõi cách thực hiện nhé.
Xem thêm: Hướng dẫn Excel cơ bản về Cách sử dụng Data Validation
Chúng ta sẽ thực hiện thao tác này theo nguyên tắc như sau:
Dựa trên nguyên tắc này, chúng ta có thể xác định được ây là 1 sự kiện Selection_Change, tức là bạn chọn 1 ô nào đó trong Sheet.
Ví dụ: Tại ô B1 đã được tạo danh sách thả xuống bằng Data Validation cho vùng dữ liệu A3:A7 với độ rộng của cột B (Column Width) bằng 8.
Các bạn chọn vào ô B1 (ô chứa Drop List) rồi sử dụng câu lệnh sau đây để đổi độ rộng từ 8 thành 14:
Range(“B1”).ColumnWidth = 8
Range(“B1”).ColumnWidth = 14
IF mệnh đề logic Then
Range(“B1”).ColumnWidth = 14
Else
Range(“B1”).ColumnWidth = 8
End If
Mệnh đề này liên quan tới việc giới hạn phạm vi trong Worksheet, do đó cú pháp là:
IF Not Application.Intersect(Target, Range(“B1”)) Is Nothing Then
Range(“B1”).ColumnWidth = 14
Else
Range(“B1”).ColumnWidth = 8
End If
Trong có câu lệnh chúng mình viết phía trên, các bạn xem phần in đậm thì cần chú ý là vùng Range ("B1") là phần vùng giới hạn nơi diễn ra sự kiện. Phần này có thể thay đổi tùy theo yêu cầu. Nhưng riêng phần chữ màu đỏ thì là cú pháp quy định, phải được viết lại đúng cú pháp nhé.
Đặt toàn bộ cấu trúc này vào trong sự kiện Worksheet_SelectionChange, ta có:
Kết quả khi áp dụng sự kiện này như sau:
Xem thêm: Tổng hợp mã VBA Excel thao tác với trang tính Excel cực nhanh
Nguyên để chúng ta thực hiện thao tác này như sau:
Cách thực hiện cụ thể là:
Câu lệnh mà chúng ta sẽ sử dụng có dạng:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Range(“B1”)) Is Nothing Then
ActiveWindow.Zoom = 150
Else
ActiveWindow.Zoom = 100
End If
End Sub
Đến đây là các thao tác đã hoàn thành. Nếu các bạn muốn tải file tài liệu mẫu thì hãy kéo xuống cuối bài viết để tải trong mục “Tài liệu đính kèm” nhé. Chúc các bạn áp dụng thành công!
Xem thêm: Thư viện mã VBA trong Excel hữu ích cho người mới bắt đầu
Qua bài chia sẻ của chúng mình, các bạn có thể thấy rằng những thao tác mà Excel không có sẵn thì có thể thực hiện một cách dễ dàng với VBA. Nếu các bạn muốn học cách dùng VBA để nâng cao hiệu suất làm việc trên Excel thì hãy đăng ký khóa học dưới đây:
Khóa học lập trình VBA trong Excel - Viết code trong tầm tay
Khóa học sẽ giúp các bạn sẽ xây dựng được tư duy lập trình cơ bản giúp giải quyết các vấn đề tận gốc thông qua các bài tập thiết thực trong công việc. Các bạn sẽ biết cách cách tự viết code, đọc hiểu code và sửa code VBA, biết phát hiện và xử lý lỗi, tạo userform, sự kiện, in hàng loạt, thêm/sửa/xóa dữ liệu, nạp dữ liệu, trích xuất dữ liệu,… Trong quá trình học, giảng viên sẽ hỗ trợ và giải đáp mọi thắc mắc cho bạn. Bạn có thể học mọi lúc, mọi nơi vì khóa học có giá trị sử dụng trọn đời. Chúc các bạn luôn học tập hiệu quả nhé!
Tài liệu kèm theo bài viết
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!