Trong bài này, chúng ta sẽ tìm hiểu cách tạo danh sách thả xuống xác thực dữ liệu excel với nhiều lựa chọn. Trong khi chúng tôi sử dụng xác thực dữ liệu, nó chỉ cho phép chúng tôi chọn một mục từ danh sách. Nhưng, điều gì sẽ xảy ra nếu chúng ta muốn chọn nhiều mục từ menu thả xuống của danh sách xác thực dữ liệu. Vì vậy, trong hướng dẫn này, chúng tôi sẽ sử dụng một số macro để giải quyết hạn chế của nhiều lựa chọn từ danh sách thả xuống xác thực dữ liệu.
Bạn có thể tải xuống sách bài tập thực hành từ đây.
3 Ví dụ để tạo danh sách thả xuống xác thực dữ liệu với nhiều lựa chọn trong Excel
Quy trình áp dụng VBA macro để tạo danh sách thả xuống xác thực dữ liệu với nhiều lựa chọn là một quá trình phức tạp. Vì vậy, để bạn hiểu rõ hơn, chúng tôi sẽ chứng minh 3 các ví dụ khác nhau về nhiều lựa chọn từ danh sách thả xuống xác thực dữ liệu.
1. Tạo danh sách thả xuống xác thực dữ liệu Excel cho nhiều lựa chọn trong một ô duy nhất
Đầu tiên và quan trọng nhất, chúng tôi có tập dữ liệu sau, bao gồm tên của 4 Quốc gia. Chúng tôi muốn tạo một danh sách thả xuống xác thực dữ liệu với nhiều lựa chọn từ những tên này. Thông thường, xác thực dữ liệu sẽ chỉ cho phép chúng tôi chọn tên của một quốc gia trong một ô. Tuy nhiên, chúng tôi muốn nhập nhiều tên quốc gia từ danh sách xác thực dữ liệu trong một ô.
Vì vậy, hãy xem các bước để thực hiện hành động này.
CÁC BƯỚC:
- Trước hết, hãy chọn phạm vi ô ( D4:D8 ). Đặt phạm vi tên ‘ dv_list_0 '.
- Thứ hai, chọn phạm vi ô ( B5:B8 ) và đặt phạm vi tên ‘ Country_Range '.
- Thứ ba, đi tới Dữ liệu > Công cụ dữ liệu > Xác thực dữ liệu > Xác thực dữ liệu .
- Hành động trên sẽ mở ra một hộp thoại mới có tên là ‘ Xác thực dữ liệu '.
- Tiếp theo, chọn tùy chọn Danh sách từ Cho phép Nhập công thức sau vào Nguồn trường văn bản:
=dv_list_0
- Nhấp vào OK .
- Vì vậy, một biểu tượng thả xuống sẽ xuất hiện ở bên phải của các ô đã chọn.
- Sau đó, nhấp chuột phải trên trang tính tên của trang tính đang hoạt động. Chọn tùy chọn ‘ Xem mã '.
- Lệnh trên sẽ mở VBA trống Chèn mã sau vào mô-đun đó:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Value_Old As String
Dim Value_New As String
If Target.Count > 1 Then Exit Sub
If Target.Value = "" Then Exit Sub
If Not Intersect(Target, ActiveSheet.Range("Country_Range")) Is Nothing Then
Application.EnableEvents = False
Value_New = Target.Value
On Error Resume Next
Application.Undo
On Error GoTo 0
Value_Old = Target.Value
If InStr(Value_Old, Value_New) Then
If InStr(Value_Old, ",") Then
If InStr(Value_Old, ", " & Value_New) Then
Target.Value = Replace(Value_Old, ", " & Value_New, "")
Else
Target.Value = Replace(Value_Old, Value_New & ", ", "")
End If
Else
Target.Value = ""
End If
Else
If Value_Old = "" Then
Target.Value = Value_New
Else
If Value_New = "" Then
Target.Value = ""
Else
If InStr(Target.Value, Value_New) = 0 Then
Target.Value = Value_Old & ", " & Value_New
End If
End If
End If
End If
Application.EnableEvents = True
Else
Exit Sub
End If
End Sub
- Nhấp vào nút Run hoặc nhấn F5 để chạy mã.
- Bây giờ, chúng tôi sẽ đặt tên cho macro và nhấp vào Chạy . Tên của Macro ví dụ này là VBA .
- Sau đó, chọn Hoa Kỳ từ trình đơn thả xuống của ô B5 . Nó sẽ nhập tên quốc gia Hoa Kỳ trong ô B5 .
- Cuối cùng, chọn Canada và Mexico cũng từ trình đơn thả xuống. Chúng ta có thể thấy rằng tất cả các giá trị từ menu thả xuống đều được chọn trong một ô.
Đọc thêm:Cách tạo danh sách thả xuống trong Excel để xác thực dữ liệu (8 cách)
2. Chèn nhiều lựa chọn vào các cột liền kề bằng cách tạo danh sách thả xuống xác thực dữ liệu Excel
Trong ví dụ thứ hai, chúng tôi sẽ tạo một danh sách thả xuống xác thực dữ liệu cho nhiều lựa chọn trong các cột liền kề. Nếu chúng tôi chọn bất kỳ mục nào từ danh sách thả xuống xác thực dữ liệu, mục đó sẽ được chọn tự động trong cột bên cạnh. Chúng tôi sẽ tiếp tục với tập dữ liệu trước của chúng tôi để minh họa ví dụ này.
Vì vậy, hãy xem các bước để giải quyết ví dụ này.
CÁC BƯỚC:
- Đầu tiên, chọn ô D5 . Tạo menu thả xuống xác thực dữ liệu giống như phương pháp trước. Sử dụng phạm vi ( B5:B8 ) làm giá trị nguồn để xác thực.
- Tiếp theo, nhấp chuột phải trên tên trang tính hiện hoạt và chọn tùy chọn ‘ Xem mã '.
- Một VBA trống mới mô-đun sẽ Viết ra mã sau vào mô-đun trống đó:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo exitHandler
Dim DV_Range As Range
Dim Col_i As Integer
If Target.Count > 1 Then GoTo exitHandler
On Error Resume Next
Set DV_Range = Cells.SpecialCells(xlCellTypeAllValidation)
On Error GoTo exitHandler
If DV_Range Is Nothing Then GoTo exitHandler
If Intersect(Target, DV_Range) Is Nothing Then
Else
Application.EnableEvents = False
If Target.Column = 4 Then
If Target.Value = "" Then GoTo exitHandler
If Target.Validation.Value = True Then
Col_i = Cells(Target.Row, Columns.Count).End(xlToLeft).Column + 1
Cells(Target.Row, Col_i).Value = Target.Value
Else
MsgBox "Invalid entry"
Target.Activate
End If
End If
End If
exitHandler:
Application.EnableEvents = True
End Sub
- Nhấn F5 hoặc nhấp vào nút Chạy biểu tượng để chạy mã.
- Sau đó, một hộp thoại mới có tên Macro Tạo macro có tên VBA1 và nhấp vào Chạy .
- Sau đó, từ biểu tượng thả xuống của ô D5 chọn quốc gia có tên là Hoa Kỳ .
- Lệnh trên nhập tên quốc gia Hoa Kỳ trong ô E5 nằm trong cột liền kề E .
- Cuối cùng, chọn Canada và Mexico Chúng ta có thể thấy các giá trị đã chọn lần lượt diễn ra trong các cột liền kề.
Đọc thêm: Giá trị mặc định trong danh sách xác thực dữ liệu với Excel VBA (Macro và UserForm)
Bài đọc tương tự:
- Danh sách thả xuống xác thực dữ liệu tự động hoàn thành trong Excel (2 phương pháp)
- Cách Tạo Danh sách Xác thực Dữ liệu từ Bảng trong Excel (3 Phương pháp)
- Áp dụng Nhiều Xác thực Dữ liệu trong Một Ô trong Excel (3 Ví dụ)
- Cách Xóa Khoảng trống khỏi Danh sách Xác thực Dữ liệu trong Excel (5 Phương pháp)
- Chỉ xác thực dữ liệu Excel bằng chữ và số (Sử dụng Công thức Tùy chỉnh)
3. Thực hiện nhiều lựa chọn trong các hàng riêng biệt với danh sách thả xuống xác thực dữ liệu trong Excel
Ví dụ thứ ba rất giống với ví dụ thứ hai. Trong ví dụ thứ hai, nhiều lựa chọn đã xảy ra trong các cột liền kề trong khi trong ví dụ này, nhiều lựa chọn sẽ diễn ra trong các hàng riêng biệt. Ví dụ:để tạo danh sách thả xuống xác thực dữ liệu cho nhiều lựa chọn trong ví dụ này, chúng tôi cũng sẽ tiếp tục với tập dữ liệu mà chúng tôi đã sử dụng trong các ví dụ trước.
Vì vậy, hãy xem qua các bước để thực hiện hành động này.
CÁC BƯỚC:
- Đầu tiên, hãy chọn ô D5 . Giống như với quy trình trước đó, hãy tạo một menu thả xuống xác thực dữ liệu. Xác thực bằng cách sử dụng phạm vi ( B5:B8 ) như một giá trị nguồn.
- Tiếp theo, nhấp chuột phải trên trang tính đang hoạt động. Từ các tùy chọn có sẵn, hãy chọn ‘ Xem mã '.
- Hành động trên sẽ mở ra một VBA trống Nhập mã sau vào mô-đun đó:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo exitHandler
Dim DV_Range As Range
Dim Row_1 As Long
Dim Col_1 As Long
Col_1 = Target.Column
If Target.Count > 1 Then GoTo exitHandler
On Error Resume Next
Set DV_Range = Cells.SpecialCells(xlCellTypeAllValidation)
On Error GoTo exitHandler
If DV_Range Is Nothing Then GoTo exitHandler
If Intersect(Target, DV_Range) Is Nothing Then
Else
If Target.Value = "" Then GoTo exitHandler
Application.EnableEvents = False
Select Case Target.Column
Case 4
If Target.Offset(0, 1).Value = "" Then
Row_1 = Target.Row
Else
Row_1 = Cells(Rows.Count, Col_1 + 1).End(xlUp).Row + 1
End If
Cells(Row_1, Col_1 + 1).Value = Target.Value
Target.ClearContents
End Select
End If
exitHandler:
Application.EnableEvents = True
End Sub
- Để chạy mã, hãy nhấp vào nút Chạy hoặc nhấn F5 chìa khóa.
- Sau đó, chúng ta có thể thấy một hộp thoại mới có tên Macro . Đặt tên macro VBA2 và nhấp vào Chạy .
- Sau đó, từ danh sách thả xuống của ô D5 chọn tùy chọn Hoa Kỳ .
- Vì vậy, chúng ta có thể thấy tên Hoa Kỳ diễn ra trong cùng một hàng nhưng ở cột liền kề.
- Cuối cùng, hãy chọn Canada , Mexico và Anh từng cái một. Chúng ta sẽ thấy rằng các giá trị đã chọn lần lượt diễn ra trong cùng một cột nhưng ở các hàng riêng biệt.
Đọc thêm:Danh sách thả xuống xác thực dữ liệu Excel với bộ lọc (2 ví dụ)
Kết luận
Do đó, hướng dẫn này cung cấp cho bạn tổng quan về việc tạo danh sách thả xuống xác thực dữ liệu cho nhiều lựa chọn. Để kiểm tra kỹ năng của bạn, hãy tải xuống sách bài tập thực hành đi kèm với bài viết này. Hãy để lại bình luận vào khung bên dưới nếu bạn có bất kỳ thắc mắc nào. Nhóm của chúng tôi sẽ cố gắng trả lời bạn sớm nhất có thể. Trong tương lai, hãy theo dõi Microsoft Excel cải tiến hơn giải pháp.
Các bài viết có liên quan
- Cách Sử dụng Câu lệnh IF trong Công thức Xác thực Dữ liệu trong Excel (6 Cách)
- Sử dụng Xác thực Dữ liệu trong Excel với Màu (4 Cách)
- Cách sử dụng danh sách xác thực dữ liệu từ một trang tính khác (6 phương pháp)
- Sử dụng Dải ô được Đặt tên cho Danh sách Xác thực Dữ liệu với VBA trong Excel
- [Đã sửa lỗi] Xác thực dữ liệu không hoạt động để sao chép dán trong Excel (với Giải pháp)