Computer >> Máy Tính >  >> Phần mềm >> Office

Cách tạo nhiều lựa chọn từ danh sách thả xuống trong Excel (3 cách)

Tùy thuộc vào các trường hợp, bạn có thể cần chọn nhiều giá trị trong danh sách thả xuống. Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách thực hiện nhiều lựa chọn trong danh sách thả xuống. Đối với phiên này, chúng tôi đang sử dụng Excel 2019, vui lòng sử dụng phiên bản ưa thích của bạn.

Trước khi đi sâu vào phiên, hãy tìm hiểu về tập dữ liệu là cơ sở cho các ví dụ của chúng tôi.

Cách tạo nhiều lựa chọn từ danh sách thả xuống trong Excel (3 cách)

Ở đây chúng tôi có một số yếu tố văn phòng phẩm, sử dụng chúng, chúng tôi sẽ tạo một danh sách thả xuống và chọn nhiều mục ở đó.

Lưu ý rằng đó là một tập dữ liệu đơn giản để giữ mọi thứ đơn giản. Trong một tình huống thực tế, bạn có thể gặp phải một tập dữ liệu phức tạp và lớn hơn nhiều.

Sách bài tập Thực hành

Bạn có thể tải xuống sách bài tập thực hành từ liên kết bên dưới.

Nhiều lựa chọn trong danh sách thả xuống

Trước hết, chúng ta cần tạo một danh sách thả xuống trên cơ sở các văn phòng phẩm của chúng ta. Hãy tạo nó nhanh chóng. Đừng ngần ngại truy cập bài viết về cách tạo danh sách thả xuống.

Trong phần Xác thực dữ liệu hộp thoại chọn DANH SÁCH kiểu dữ liệu và chèn phạm vi ô của các mục.

Cách tạo nhiều lựa chọn từ danh sách thả xuống trong Excel (3 cách)

B4:B11 là phạm vi chứa các yếu tố văn phòng phẩm. Bây giờ bạn sẽ tìm thấy danh sách thả xuống.

Cách tạo nhiều lựa chọn từ danh sách thả xuống trong Excel (3 cách)

Đọc thêm: Danh sách thả xuống của Excel tùy thuộc vào lựa chọn

1. Chọn nhiều mục (Cho phép lựa chọn trùng lặp)

Một danh sách thả xuống thông thường luôn chọn một mục duy nhất. Ở đây bạn có thể thấy, chúng tôi đã chọn Bút từ danh sách (hình ảnh bên dưới).

Cách tạo nhiều lựa chọn từ danh sách thả xuống trong Excel (3 cách)

Bây giờ, nếu chúng tôi chọn một mục khác, hãy giả sử Bút chì

Cách tạo nhiều lựa chọn từ danh sách thả xuống trong Excel (3 cách)

thì nó sẽ thay thế giá trị trước đó. Chỉ Bút chì sẽ vẫn được chọn.

Cách tạo nhiều lựa chọn từ danh sách thả xuống trong Excel (3 cách)

Để chọn nhiều mục, chúng tôi cần sử dụng VBA mã số. Mở Microsoft Visual Basic cho ứng dụng cửa sổ (nhấn ALT + F11 để mở nó).

Bây giờ hãy nhấp đúp vào tên hoặc số trang tính mà bạn muốn chọn nhiều mục trong danh sách thả xuống. Bạn sẽ tìm thấy cửa sổ mã cho trang tính cụ thể đó.

Cách tạo nhiều lựa chọn từ danh sách thả xuống trong Excel (3 cách)

Đây là cửa sổ mã cho Sheet2 trong sổ làm việc của chúng tôi (chúng tôi có danh sách thả xuống trong trang tính này).

Khi cửa sổ mã được mở, hãy chèn mã sau vào đó

Private Sub Worksheet_Change(ByVal Target As Range)

Dim Oldvalue As String

Dim Newvalue As String

On Error GoTo Exitsub

If Target.Address = "$D$4" Then

    If Target.SpecialCells(xlCellTypeAllValidation) Is Nothing Then

    GoTo Exitsub

    Else: If Target.Value = "" Then GoTo Exitsub Else

        Application.EnableEvents = False

        Newvalue = Target.Value

        Application.Undo

        Oldvalue = Target.Value

        If Oldvalue = "" Then

            Target.Value = Newvalue

        Else

            Target.Value = Oldvalue & ", " & Newvalue

        End If

    End If

End If

Application.EnableEvents = True

Exitsub:

Application.EnableEvents = True

End Sub

Cách tạo nhiều lựa chọn từ danh sách thả xuống trong Excel (3 cách)

Lưu mã và bây giờ hãy thử chọn các giá trị trong danh sách thả xuống.

Cách tạo nhiều lựa chọn từ danh sách thả xuống trong Excel (3 cách)

Đã chọn Bút chì , chúng tôi sẽ chọn một mục khác Máy tính xách tay . Và bạn có thể thấy, chúng tôi đã tìm thấy cả hai mục (hình ảnh bên dưới).

Cách tạo nhiều lựa chọn từ danh sách thả xuống trong Excel (3 cách)

Mã này sẽ cho phép chúng tôi lặp lại lựa chọn. Giả sử nếu chúng ta chọn Bút chì một lần nữa,

Cách tạo nhiều lựa chọn từ danh sách thả xuống trong Excel (3 cách)

chúng tôi sẽ tìm lại mục trong hộp lựa chọn.

Cách tạo nhiều lựa chọn từ danh sách thả xuống trong Excel (3 cách)

Giải thích mã

Chúng tôi đã khai báo hai chuỗi Giá trị cũ Newvalue .

Bạn có thể thấy chúng tôi đã tạo danh sách thả xuống trong D4 ô, đó là lý do tại sao địa chỉ mục tiêu của chúng tôi là D4 . Ngoài ra, chúng tôi đã kiểm tra lại xem ô có đang sử dụng xác thực dữ liệu hay không bằng cách sử dụng Target.SpecialCells .

Khi một giá trị được chọn, chúng tôi đã tắt các sự kiện (Application.EnableEvents = False ) để các thay đổi không kích hoạt lại sự kiện. Sau đó, lưu mục đã chọn vào Giá trị mới .

Sau khi hoàn tác thay đổi, chúng tôi đã đặt giá trị thành Giá trị cũ . Sau đó, kiểm tra xem Giá trị cũ trống hoặc không. Nếu trống (nghĩa là chỉ một giá trị được chọn), thì trả về Giá trị mới . Nếu không, hãy nối Giá trị cũ Newvalue .

Trước khi kết thúc, hãy đặt lại sự kiện để chúng tôi có thể thay đổi nếu được yêu cầu.

Đọc thêm: Danh sách thả xuống phụ thuộc nhiều Excel VBA

2. Chọn nhiều mục từ danh sách thả xuống (Chỉ lựa chọn duy nhất)

Trong phần trước, chúng ta đã thấy nhiều lựa chọn cho phép lặp lại. Nếu bạn không muốn điều đó, hãy làm theo phần này.

Để thuận tiện, chúng tôi đã sử dụng một trang tính riêng cho phần trình diễn này. Lần này chúng tôi đang ở Sheet3. Viết mã sau vào cửa sổ mã cho trang tính này.

Private Sub Worksheet_Change(ByVal Target As Range)

Dim Oldvalue As String

Dim Newvalue As String

Application.EnableEvents = True

On Error GoTo Exitsub

If Target.Address = "$D$4" Then

  If Target.SpecialCells(xlCellTypeAllValidation) Is Nothing Then

    GoTo Exitsub

  Else: If Target.Value = "" Then GoTo Exitsub Else

    Application.EnableEvents = False

    Newvalue = Target.Value

    Application.Undo

    Oldvalue = Target.Value

      If Oldvalue = "" Then

        Target.Value = Newvalue

      Else

        If InStr(1, Oldvalue, Newvalue) = 0 Then

            Target.Value = Oldvalue & ", " & Newvalue

      Else:

        Target.Value = Oldvalue

      End If

    End If

  End If

End If

Application.EnableEvents = True

Exitsub:

Application.EnableEvents = True

End Sub

Cách tạo nhiều lựa chọn từ danh sách thả xuống trong Excel (3 cách)

Có sự khác biệt nào so với mã trước đó! Hãy quan sát kỹ hơn, bạn sẽ có thể nhận ra sự khác biệt nhỏ.

Ở đây chúng tôi đã sử dụng VBA hàm được gọi là INSTR . INSTR hàm trả về vị trí của lần xuất hiện đầu tiên của một chuỗi con trong một chuỗi. Truy cập bài viết INSTR này để biết thêm thông tin.

Sử dụng phép toán logic này với InStr (1, Oldvalue, Newvalue) =0, chúng tôi đã kiểm tra xem các giá trị có được tìm thấy hay không. Nếu hoạt động logic trả về TRUE (không tìm thấy trước đó) sau đó nó cho phép chọn mục và nối với giá trị trước đó.

Lưu mã và bây giờ hãy thử chọn một mục đã được chọn.

Cách tạo nhiều lựa chọn từ danh sách thả xuống trong Excel (3 cách)

Ở đây chúng tôi đã chọn Bút chì , nếu chúng tôi muốn chọn lại, chúng tôi không thể. Nó không cho phép các giá trị trùng lặp.

Đọc thêm: Cách tạo danh sách thả xuống từ một trang tính khác trong Excel

3. Chọn các mục trong dòng mới

Cho đến nay, chúng tôi đã tìm thấy các mục được phân tách bằng dấu phẩy. Trong phần này, chúng tôi sẽ sắp xếp các mục đã chọn theo dòng mới.

Để đơn giản, chúng tôi đang hợp nhất một vài ô với D4 tế bào. Để làm điều đó, hãy chọn các ô bạn muốn hợp nhất và nhấp vào Hợp nhất &Căn giữa từ Căn chỉnh phần Trang chủ tab.

Cách tạo nhiều lựa chọn từ danh sách thả xuống trong Excel (3 cách)

Ô sẽ tăng thêm chiều cao.

Cách tạo nhiều lựa chọn từ danh sách thả xuống trong Excel (3 cách)

Bây giờ, hãy xem mã để tách các mục qua dòng mới. Sử dụng mã sau

Private Sub Worksheet_Change(ByVal Target As Range)

Dim Oldvalue As String

Dim Newvalue As String

Application.EnableEvents = True

On Error GoTo Exitsub

If Target.Address = "$D$4" Then

  If Target.SpecialCells(xlCellTypeAllValidation) Is Nothing Then

    GoTo Exitsub

  Else: If Target.Value = "" Then GoTo Exitsub Else

    Application.EnableEvents = False

    Newvalue = Target.Value

    Application.Undo

    Oldvalue = Target.Value

      If Oldvalue = "" Then

        Target.Value = Newvalue

      Else

        If InStr(1, Oldvalue, Newvalue) = 0 Then

            Target.Value = Oldvalue & vbNewLine & Newvalue

      Else:

        Target.Value = Oldvalue

      End If

    End If

  End If

End If

Application.EnableEvents = True

Exitsub:

Application.EnableEvents = True

End Sub

Cách tạo nhiều lựa chọn từ danh sách thả xuống trong Excel (3 cách)

Sự khác biệt duy nhất so với mã trước đó là lần này chúng tôi sử dụng vbNewLine ở giữa OldValue NewValue .

vbNewLine cung cấp một dòng mới giữa các mục.

Bây giờ hãy chọn các mục.

Cách tạo nhiều lựa chọn từ danh sách thả xuống trong Excel (3 cách)

Chúng tôi chọn một mục Bút điều đó được hiển thị trong hình ảnh trên. Bây giờ hãy chọn một phần tử khác.

Cách tạo nhiều lựa chọn từ danh sách thả xuống trong Excel (3 cách)

Bạn sẽ thấy hai mục này ở các dòng khác nhau.

Cách tạo nhiều lựa chọn từ danh sách thả xuống trong Excel (3 cách)

Ở đây chúng ta có hai giá trị, nằm ở hai dòng khác nhau. Chọn một giá trị khác sẽ thêm giá trị đó vào một dòng khác. Mọi giá trị sẽ nằm trong một dòng mới.

Cách tạo nhiều lựa chọn từ danh sách thả xuống trong Excel (3 cách)

Lưu ý rằng nếu bạn muốn một dấu phân cách khác để phân tách các mục, hãy sử dụng dấu phân cách đó trong dấu ngoặc kép thay cho vbNewline .

Kết luận

Đó là tất cả cho ngày hôm nay. Chúng tôi đã liệt kê một số cách tiếp cận để thực hiện nhiều lựa chọn trong danh sách thả xuống. Hy vọng bạn sẽ thấy điều này hữu ích. Vui lòng bình luận nếu bất cứ điều gì có vẻ khó hiểu. Hãy cho chúng tôi biết bất kỳ phương pháp nào khác mà chúng tôi đã bỏ qua tại đây.

Bài đọc thêm

  • Cách tạo danh sách thả xuống ở nhiều cột trong Excel (3 cách)
  • Liên kết giá trị ô với danh sách thả xuống trong Excel (5 cách)
  • Danh sách thả xuống có điều kiện trong Excel (Tạo, Sắp xếp và Sử dụng)
  • Tạo Danh sách Thả xuống Phụ thuộc Động trong Excel
  • Cách sử dụng Câu lệnh IF để Tạo Danh sách Thả xuống trong Excel
  • VLOOKUP với Danh sách thả xuống trong Excel