Note: The other languages of the website are Google-translated. Back to English

Làm thế nào để tạo danh sách thả xuống với nhiều lựa chọn hoặc giá trị trong Excel?

Theo mặc định, bạn chỉ có thể chọn một mục trong danh sách thả xuống xác thực dữ liệu trong Excel. Làm thế nào bạn có thể thực hiện nhiều lựa chọn trong danh sách thả xuống như hình gif bên dưới? Các phương pháp trong bài viết này có thể giúp bạn giải quyết vấn đề.


Tạo danh sách thả xuống với nhiều lựa chọn bằng mã VBA

Phần này cung cấp hai mã VBA để giúp bạn thực hiện nhiều lựa chọn trong danh sách thả xuống trong một trang tính. Hai mã VBA có thể đạt được:

Mã VBA 1: Cho phép nhiều lựa chọn trong danh sách thả xuống mà không có bản sao
Mã VBA 2: Cho phép nhiều lựa chọn trong danh sách thả xuống mà không có các mục trùng lặp (xóa các mục hiện có bằng cách chọn lại)

Bạn có thể áp dụng một trong các mã VBA sau để thực hiện nhiều lựa chọn trong danh sách thả xuống trong trang tính trong Excel. Hãy làm như sau.

1. Mở trang tính có chứa danh sách thả xuống xác thực dữ liệu mà từ đó bạn muốn thực hiện nhiều lựa chọn. Nhấp chuột phải vào tab trang tính và chọn Mã Chế độ xem từ trình đơn ngữ cảnh.

2. bên trong Microsoft Visual Basic cho các ứng dụng cửa sổ, sao chép mã VBA bên dưới vào cửa sổ mã. Xem ảnh chụp màn hình:

Mã VBA 1: Cho phép nhiều lựa chọn trong danh sách thả xuống mà không có bản sao

Private Sub Worksheet_Change(ByVal Target As Range)
    'Updated by Extendoffice 2019/11/13
    Dim xRng As Range
    Dim xValue1 As String
    Dim xValue2 As String
    If Target.Count > 1 Then Exit Sub
    On Error Resume Next
    Set xRng = Cells.SpecialCells(xlCellTypeAllValidation)
    If xRng Is Nothing Then Exit Sub
    Application.EnableEvents = False
    If Not Application.Intersect(Target, xRng) Is Nothing Then
        xValue2 = Target.Value
        Application.Undo
        xValue1 = Target.Value
        Target.Value = xValue2
        If xValue1 <> "" Then
            If xValue2 <> "" Then
                If xValue1 = xValue2 Or _
                   InStr(1, xValue1, ", " & xValue2) Or _
                   InStr(1, xValue1, xValue2 & ",") Then
                    Target.Value = xValue1
                Else
                    Target.Value = xValue1 & ", " & xValue2
                End If
            End If
        End If
    End If
    Application.EnableEvents = True
End Sub

3. Nhấn nút Khác + Q chìa khóa để đóng Microsoft Visual Basic cho các ứng dụng cửa sổ.

Bây giờ bạn có thể chọn nhiều mục từ danh sách thả xuống trong trang tính hiện tại.

Giả sử bạn đã vô tình chọn một mục và cần xóa nó mà không xóa toàn bộ ô và bắt đầu lại. Mã VBA 2 sau đây có thể giúp bạn.

Mã VBA 2: Cho phép nhiều lựa chọn trong danh sách thả xuống mà không có các mục trùng lặp (xóa các mục hiện có bằng cách chọn lại)

Private Sub Worksheet_Change(ByVal Target As Range)
    'Updated by Extendoffice 2023/01/11
    'Updated by Ken Gardner 2022/07/11
    Dim xRng As Range
    Dim xValue1 As String
    Dim xValue2 As String
    Dim semiColonCnt As Integer
    Dim xType As Integer
    If Target.Count > 1 Then Exit Sub
    On Error Resume Next
    
    xType = 0
    xType = Target.Validation.Type
    If xType = 3 Then
        Application.ScreenUpdating = False
        Application.EnableEvents = False
        xValue2 = Target.Value
        Application.Undo
        xValue1 = Target.Value
        Target.Value = xValue2
        If xValue1 <> "" Then
            If xValue2 <> "" Then
                If xValue1 = xValue2 Or xValue1 = xValue2 & ";" Or xValue1 = xValue2 & "; " Then ' leave the value if only one in list
                    xValue1 = Replace(xValue1, "; ", "")
                    xValue1 = Replace(xValue1, ";", "")
                    Target.Value = xValue1
                ElseIf InStr(1, xValue1, "; " & xValue2) Then
                    xValue1 = Replace(xValue1, xValue2, "") ' removes existing value from the list on repeat selection
                    Target.Value = xValue1
                ElseIf InStr(1, xValue1, xValue2 & ";") Then
                    xValue1 = Replace(xValue1, xValue2, "")
                    Target.Value = xValue1
                Else
                    Target.Value = xValue1 & "; " & xValue2
                End If
                Target.Value = Replace(Target.Value, ";;", ";")
                Target.Value = Replace(Target.Value, "; ;", ";")
                If Target.Value <> "" Then
                    If Right(Target.Value, 2) = "; " Then
                        Target.Value = Left(Target.Value, Len(Target.Value) - 2)
                    End If
                End If
                If InStr(1, Target.Value, "; ") = 1 Then ' check for ; as first character and remove it
                    Target.Value = Replace(Target.Value, "; ", "", 1, 1)
                End If
                If InStr(1, Target.Value, ";") = 1 Then
                    Target.Value = Replace(Target.Value, ";", "", 1, 1)
                End If
                semiColonCnt = 0
                For i = 1 To Len(Target.Value)
                    If InStr(i, Target.Value, ";") Then
                        semiColonCnt = semiColonCnt + 1
                    End If
                Next i
                If semiColonCnt = 1 Then ' remove ; if last character
                    Target.Value = Replace(Target.Value, "; ", "")
                    Target.Value = Replace(Target.Value, ";", "")
                End If
            End If
        End If
        Application.EnableEvents = True
        Application.ScreenUpdating = True
    End If
End Sub

Chú ý:

1). Các giá trị trùng lặp không cho phép trong danh sách thả xuống.
2). Mã VBA 2 ở trên được cung cấp bởi người dùng nhiệt tình Ken Gardner của chúng tôi vào ngày 2022/07/11.
3). Vui lòng lưu sổ làm việc dưới dạng Sổ làm việc hỗ trợ macro Excel để giữ cho mã hoạt động trong tương lai.
4). Sau khi thêm mã VBA 2, bạn có thể xóa mục hiện có bằng cách chọn lại mục đó trong danh sách thả xuống. Xem ảnh gif bên dưới:


Dễ dàng tạo danh sách thả xuống với nhiều lựa chọn với một công cụ tuyệt vời

Ở đây chúng tôi thực sự khuyên bạn nên Danh sách thả xuống nhiều lựa chọn tính năng của Kutools cho Excel cho bạn. Với tính năng này, bạn có thể dễ dàng chọn nhiều mục từ danh sách thả xuống trong một phạm vi được chỉ định, trang tính hiện tại, sổ làm việc hiện tại hoặc tất cả các sổ làm việc đã mở khi bạn cần.

Trước khi áp dụng Kutools cho Excel, Xin vui lòng tải xuống và cài đặt nó trước tiên.

1. nhấp chuột Kutools > Danh sách thả xuống > Danh sách thả xuống nhiều lựa chọn > Cài đặt. Xem ảnh chụp màn hình:

2. bên trong Nhiều lựa chọn Cài đặt danh sách thả xuống hộp thoại, vui lòng cấu hình như sau.

  • 2.1) Chỉ định phạm vi áp dụng trong Nộp đơn phần. Trong trường hợp này, tôi chọn Bảng tính hiện tại từ Phạm vi cụ thể danh sách thả xuống;
  • 2.2) Trong Văn bản chỉ đạo phần, chọn một hướng văn bản dựa trên nhu cầu của bạn;
  • 2.3) Trong máy phân ly , nhập dấu phân cách mà bạn sẽ sử dụng để phân tách nhiều giá trị;
  • 2.4) Kiểm tra Không thêm bản sao hộp trong Các lựa chọn phần nếu bạn không muốn tạo bản sao trong các ô danh sách thả xuống;
  • 2.5) Nhấp vào OK cái nút. Xem ảnh chụp màn hình:

3. Vui lòng nhấp vào Kutools > Danh sách thả xuống > Danh sách thả xuống nhiều lựa chọn để kích hoạt tính năng.

Giờ đây, bạn có thể chọn nhiều mục từ danh sách thả xuống trong trang tính hiện tại hoặc bất kỳ phạm vi nào bạn đã chỉ định trong bước 2.

  Nếu bạn muốn dùng thử miễn phí (30-day) của tiện ích này, vui lòng nhấp để tải xuống, và sau đó đi đến áp dụng hoạt động theo các bước trên.


Các bài liên quan:

Tự động điền khi nhập trong Excel danh sách thả xuống
Nếu bạn có danh sách thả xuống xác thực dữ liệu với các giá trị lớn, bạn cần cuộn xuống danh sách chỉ để tìm giá trị phù hợp hoặc nhập trực tiếp toàn bộ từ vào hộp danh sách. Nếu có phương pháp cho phép tự động hoàn thành khi nhập ký tự đầu tiên trong danh sách thả xuống, mọi thứ sẽ trở nên dễ dàng hơn. Hướng dẫn này cung cấp phương pháp để giải quyết vấn đề.

Tạo danh sách thả xuống từ một sổ làm việc khác trong Excel
Khá dễ dàng để tạo danh sách sổ xuống xác thực dữ liệu giữa các trang tính trong sổ làm việc. Nhưng nếu dữ liệu danh sách bạn cần để xác thực dữ liệu nằm trong một sổ làm việc khác, bạn sẽ làm gì? Trong hướng dẫn này, bạn sẽ học cách tạo danh sách drop fown từ một sổ làm việc khác trong Excel một cách chi tiết.

Tạo danh sách thả xuống có thể tìm kiếm trong Excel
Đối với một danh sách thả xuống với nhiều giá trị, việc tìm một giá trị thích hợp không phải là một công việc dễ dàng. Trước đây, chúng tôi đã giới thiệu một phương pháp tự động hoàn thành danh sách thả xuống khi nhập ký tự đầu tiên vào hộp thả xuống. Bên cạnh chức năng tự động hoàn thành, bạn cũng có thể làm cho danh sách thả xuống có thể tìm kiếm được để nâng cao hiệu quả làm việc trong việc tìm kiếm các giá trị thích hợp trong danh sách thả xuống. Để làm cho danh sách thả xuống có thể tìm kiếm được, hãy thử phương pháp trong hướng dẫn này.

Tự động điền các ô khác khi chọn giá trị trong danh sách thả xuống của Excel
Giả sử bạn đã tạo một danh sách thả xuống dựa trên các giá trị trong phạm vi ô B8: B14. Khi bạn chọn bất kỳ giá trị nào trong danh sách thả xuống, bạn muốn các giá trị tương ứng trong phạm vi ô C8: C14 được tự động điền vào một ô đã chọn. Để giải quyết vấn đề, các phương pháp trong hướng dẫn này sẽ giúp bạn.

Hướng dẫn khác cho danh sách thả xuống ...


Các công cụ năng suất văn phòng tốt nhất

Kutools cho Excel giải quyết hầu hết các vấn đề của bạn và tăng 80% năng suất của bạn

  • Tái sử dụng: Chèn nhanh công thức phức tạp, biểu đồ và bất cứ thứ gì bạn đã sử dụng trước đây; Mã hóa ô với mật khẩu; Tạo danh sách gửi thư và gửi email ...
  • Thanh siêu công thức (dễ dàng chỉnh sửa nhiều dòng văn bản và công thức); Bố cục đọc (dễ dàng đọc và chỉnh sửa số lượng ô lớn); Dán vào Dải ô đã Lọchữu ích. Cảm ơn !
  • Hợp nhất các ô / hàng / cột mà không làm mất dữ liệu; Nội dung phân chia ô; Kết hợp các hàng / cột trùng lặp... Ngăn chặn các ô trùng lặp; So sánh các dãyhữu ích. Cảm ơn !
  • Chọn trùng lặp hoặc duy nhất Hàng; Chọn hàng trống (tất cả các ô đều trống); Tìm siêu và Tìm mờ trong Nhiều Sổ làm việc; Chọn ngẫu nhiên ...
  • Bản sao chính xác Nhiều ô mà không thay đổi tham chiếu công thức; Tự động tạo tài liệu tham khảo sang Nhiều Trang tính; Chèn Bullets, Hộp kiểm và hơn thế nữa ...
  • Trích xuất văn bản, Thêm Văn bản, Xóa theo Vị trí, Xóa không gian; Tạo và In Tổng số phân trang; Chuyển đổi giữa nội dung ô và nhận xéthữu ích. Cảm ơn !
  • Siêu lọc (lưu và áp dụng các lược đồ lọc cho các trang tính khác); Sắp xếp nâng cao theo tháng / tuần / ngày, tần suất và hơn thế nữa; Bộ lọc đặc biệt bằng cách in đậm, in nghiêng ...
  • Kết hợp Workbook và WorkSheets; Hợp nhất các bảng dựa trên các cột chính; Chia dữ liệu thành nhiều trang tính; Chuyển đổi hàng loạt xls, xlsx và PDFhữu ích. Cảm ơn !
  • Hơn 300 tính năng mạnh mẽ. Hỗ trợ Office / Excel 2007-2021 và 365. Hỗ trợ tất cả các ngôn ngữ. Dễ dàng triển khai trong doanh nghiệp hoặc tổ chức của bạn. Đầy đủ tính năng Dùng thử miễn phí 30 ngày. Bảo đảm hoàn lại tiền trong 60 ngày.
tab kte 201905

Tab Office mang lại giao diện Tab cho Office và giúp công việc của bạn trở nên dễ dàng hơn nhiều

  • Cho phép chỉnh sửa và đọc theo thẻ trong Word, Excel, PowerPoint, Publisher, Access, Visio và Project.
  • Mở và tạo nhiều tài liệu trong các tab mới của cùng một cửa sổ, thay vì trong các cửa sổ mới.
  • Tăng 50% năng suất của bạn và giảm hàng trăm cú nhấp chuột cho bạn mỗi ngày!
officetab dưới cùng
Nhận xét (67)
Chưa có xếp hạng. Hãy là người đầu tiên xếp hạng!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào, Cảm ơn về giải pháp và mã. Nhưng bước tiếp theo là làm thế nào để đảm bảo rằng người dùng không chọn các giá trị "trùng lặp" từ danh sách thả xuống. Ví dụ: Nếu có 4 mục trong danh sách - cam, táo, chuối, đào và nếu người dùng đã chọn "cam", thì excel sẽ không cho phép người dùng chọn "cam" HOẶC tùy chọn đó nên bị xóa khỏi phần còn lại của danh sách. Bạn có thể vui lòng xuất bản mã để thực hiện tính năng này. Thanks. Yezdi
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào Yezdi, Cảm ơn bạn đã bình luận. Mã đã được cập nhật và không có giá trị trùng lặp nào cho phép trong danh sách thả xuống ngay bây giờ. Thanks. Ánh sáng mặt trời
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Thật tuyệt khi điều này cho phép nhiều lựa chọn nhưng như @Yezdi đã nhận xét, tôi thấy nó sẽ thêm một hoặc một số bản sao ngay cả khi tôi không chọn chúng. Vì vậy, hiện tại, đây là một giải pháp 80% ... chỉ một lần chỉnh sửa là hoàn hảo. Tôi không phải là một lập trình viên VB hoặc tôi muốn cung cấp giải pháp.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Bạn có thể thay đổi mã trong các dòng sau để tránh trùng lặp: If xValue2 "" Then Target.Value = xValue1 & "," & xValue2 End If To: If xValue2 "" Then If CheckIfAlreadyAdded (xValue1, xValue2) = False Then Target .Value = xValue1 & "," & xValue2 Else Target.Value = xValue1 End If End If Và sau đó thêm hàm sau: Private Function CheckIfAlreadyAdded (ByVal sText As String, sNewValue As String) As Boolean CheckIfAlreadyAdded = False Dim WrdArray String WrdArray () = Split (sText, ",") For i = LBound (WrdArray) To UBound (WrdArray) If Trim (WrdArray (i)) = Trim (sNewValue) Then CheckIfAlreadyAdded = True Next i End Function - Có lẽ những cách tốt hơn để mã hóa nó nhưng nó vẫn hoạt động cho đến thời điểm hiện tại.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Chỉ nhận ra rằng tôi đã không thoát khỏi vòng lặp trong hàm mới nếu điều kiện đã được đặt để chúng tôi không phải kiểm tra các mục nhập khác.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Chào. Cảm ơn bạn về mã và sự bổ sung để hạn chế trùng lặp. Một yêu cầu nữa - sẽ phải thực hiện bổ sung / thay đổi nào để chỉ cho phép nhiều lựa chọn trong một hoặc hai cột cụ thể? Mã này đang thêm lại các dòng văn bản vào ô 'thuần túy' nếu tôi sửa lỗi đánh máy hoặc thực hiện thay đổi hoặc bổ sung văn bản trong ô, trái ngược với việc chỉ hoạt động 'bình thường' và chấp nhận thay đổi (mà không cần thêm lại toàn bộ văn bản một lần nữa). Ví dụ, cột A là một cột 'thuần túy'. Tôi viết một câu "Ba itmes bạn muốn nhất là gì?" Cột B là cột 'danh sách' mà tôi chỉ muốn có thể chọn một giá trị duy nhất (trong trường hợp này, hãy nói tên của một đứa trẻ). Cột C là một cột 'danh sách' khác, nơi người dùng phải có thể chọn nhiều mục (mà mã này cho phép tôi thực hiện một cách hoàn hảo). Khi tôi tiếp tục, tôi nhận ra rằng tôi đã mắc lỗi đánh máy trong cột A và muốn sửa nó. Như mã này là viết tắt, nếu tôi truy cập (nhấp đúp, F2) và thực hiện sửa từ "items", tôi sẽ nhận được kết quả này trong ô của mình: "Ba itmes bạn muốn nhất là gì? Ba là gì mục bạn muốn nhất? " cảm ơn bạn trước vì bất kỳ sự trợ giúp nào (từ một người dùng THỰC SỰ thích VBA, nhưng vẫn đang ở giai đoạn học hỏi sớm nhất!)
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tôi đã có thể làm cho mã hoạt động, nhưng sau đó khi tôi lưu tài liệu (có bật macro), đóng nó và quay lại, mã không hoạt động nữa (mặc dù nó vẫn ở trong đó). Tôi không thể tìm ra những gì tôi đã làm sai. Có ý kiến ​​gì không?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào Cynthia, Nếu tác giả gốc không trả lời, tôi sẽ trả lời cho bạn nhưng tôi sẽ chỉ ngồi trước máy tính vào ngày 29 tháng XNUMX một lần nữa. Tôi cũng không phải là lập trình viên VBA. Những gì bạn có thể làm trong lúc này là tìm kiếm trên Google cách xác định số cột và chỉ cho phép mã chạy nếu dữ liệu được chỉnh sửa trong (các) cột cụ thể đó. Tôi đã thực hiện xong nhưng mã nằm trên PC cơ quan của tôi và không thể nhớ lại nó vào lúc này, có thể thử đặt debug.print trên target.column hoặc thứ gì đó vào hiệu ứng đó để xem nó có cung cấp cho bạn số cột đang được chỉnh sửa không . Xin lỗi Jennifer, không chắc về vấn đề bạn đang gặp phải :(
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
@Cynthia, Nếu vẫn được yêu cầu, bạn có thể làm điều gì đó như thế này để chỉ đảm bảo mã chạy trên các cột cụ thể, trong trường hợp của tôi là cột 34 và 35: If (Target.Column 34 And Target.Column 35) Then Exit Sub 'Đặt mã này ở đầu sau các tuyên bố lờ mờ của bạn
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
[quote] @Cynthia, Nếu vẫn được yêu cầu, bạn có thể làm điều gì đó như thế này để chỉ đảm bảo mã chạy trên các cột cụ thể, trong trường hợp của tôi là cột 34 và 35: If (Target.Column 34 And Target.Column 35) Sau đó thoát Sub 'Đặt mã này ở đầu sau các câu lệnh lờ mờ của bạnBởi Mervyn[/ quote] Xin chào @Mervyn, Đã mất hoàn toàn bài viết, nhưng cảm ơn bạn rất nhiều vì đã phản hồi. Tôi đã thử áp dụng If (Target.Column 34 và Target.Column 35) Then Exit Sub (phiên bản của tôi ghi If (Target.Column4 And Target.Column5) Then Exit Sub như bạn đã cung cấp, nhưng nhận được thông báo "Thời gian chạy lỗi '438': Đối tượng không hỗ trợ thuộc tính này hoặc lỗi phương thức "" trên dòng mới này. Đây là một vài dòng mã đầu tiên của tôi: Private Sub Worksheet_Change (ByVal Target As Range) Dim xRng As Range Dim xValue1 As String Dim xValue2 As String If (Target.Column4 và Target.Column5) Sau đó Thoát Sub Nếu Target.Count> 1 Sau đó Thoát Sub Khi Lỗi Tiếp tục Tiếp theo Trang tính của tôi chỉ có 6 cột: Câu hỏi | Câu trả lời | Danh mục | Danh mục con | Thẻ | Liên kết ảnh Tôi chỉ cần nhiều giá trị thả xuống trong Danh mục phụ và Thẻ (cột 4 và 5). Tôi sẽ tiếp tục tìm kiếm thông tin như bạn đã đề xuất vào ngày 12/23 và sẽ xem liên kết từ thiện được cung cấp.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
If Target.Column <> 34 Then Exit Sub

'Đặt mã này ở đầu sau các tuyên bố lờ mờ của bạn
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào Tôi hiện đang sử dụng công thức này và tất cả các cột có xác thực dữ liệu hiện có tùy chọn nhiều lựa chọn, tuy nhiên tôi muốn giới hạn nhiều lựa chọn chỉ trong một cột. Ai đó có thể chỉnh sửa công thức này cho tôi để nhiều lựa chọn chỉ có thể được áp dụng cho Cột 4 không? Cảm ơn :) Private Sub Worksheet_Change (ByVal Target As Range) 'Cập nhật: 2016/4/12 Dim xRng As Range Dim xValue1 As String Dim xValue2 As String If Target.Count> 1 Then Exit Sub On Error Resume Next Set xRng = Cells. SpecialCells (xlCellTypeAllValidation) If xRng Is Nothing then Exit Sub Application.EnableEvents = False If Not Application.Intersect (Target, xRng) Is Nothing Thì xValue2 = Target.Value Application.Undo xValue1 = Target.Value Target.Value = xValue2 Nếu xValue1 " "Then If xValue2" "Then If xValue1 = xValue2 Hoặc _ InStr (1, xValue1,", "& xValue2) Hoặc _ InStr (1, xValue1, xValue2 &", ") Then Target.Value = xValue1 Else Target.Value = xValue1 & "," & xValue2 Kết thúc Nếu Kết thúc Nếu Kết thúc Nếu Kết thúc Nếu Ứng dụng.EnableEvents = True End Sub Mọi sự trợ giúp sẽ được đánh giá cao!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Điều này hoạt động tốt, nhưng tôi không thể xóa một mục sau khi đã chọn. Bất kỳ đề xuất nào trong trường hợp tôi vô tình nhấp vào thứ gì đó và cần xóa nó mà không (hy vọng) xóa toàn bộ ô và bắt đầu lại? Ngoài ra, đối với những người đang tìm cách xác định một cột hoặc các cột, Ngữ cảnh có một bổ sung tuyệt vời cho mã được cung cấp ở đây cho phép bạn làm điều đó. http://www.contextures.com/excel-data-validation-multiple.html#column
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
[quote] Cách này hoạt động tốt, nhưng tôi không thể xóa một mục sau khi đã chọn. Bất kỳ đề xuất nào trong trường hợp tôi vô tình nhấp vào thứ gì đó và cần xóa nó mà không (hy vọng) xóa toàn bộ ô và bắt đầu lại? Ngoài ra, đối với những người đang tìm cách xác định một cột hoặc các cột, Ngữ cảnh có một bổ sung tuyệt vời cho mã được cung cấp ở đây cho phép bạn làm điều đó. http://www.contextures.com/excel-data-validation-multiple.html#columnBởi từ thiện[/ quote] Code hoạt động tốt. Tuy nhiên, tôi dường như không thể bỏ chọn một mục. Khi tôi muốn xóa một mục khỏi lựa chọn, nó chỉ không bị xóa. Có ai khác cũng gặp sự cố này không? [/ Quote] Xin chào tất cả, Đã tìm thấy giải pháp nào cho vấn đề này..Xin vui lòng chia sẻ ..
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào, Mã hoạt động tốt. Tuy nhiên, tôi dường như không thể bỏ chọn một mục. Khi tôi muốn xóa một mục khỏi lựa chọn, nó chỉ không bị xóa. Có ai khác cũng gặp vấn đề này không?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Đã có phản hồi cho vấn đề này. Đó là cùng một vấn đề tôi đang gặp phải. Dường như không có cách nào để xóa một mục đã được chọn.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
xóa nội dung trong ô, sau đó chọn lại
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào tất cả, tôi có mã này trên một trang tính excel và nó làm sạch nội dung khỏi danh sách thả xuống khi ô được chọn - Tôi biết phần nào của mã đang thực hiện điều đó (phần có nội dung 'fillRng.ClearContents') và tôi đã cố gắng sử dụng một số cách trên để khắc phục nó không thành công ... Tôi mới làm quen với lập trình VBA, v.v. Có ai có thể giúp đỡ về cách thay đổi nó để khi ô được chọn, nó không rõ ràng và các mục nhập sẽ không. nhân bản xin vui lòng ?? Tùy chọn rõ ràng Dim fillRng As Range Private Sub Worksheet_SelectionChange (ByVal Target As Range) Dim Qualifier As MSForms.ListBox Dim LBobj As OLEObject Dim i As Long Set LBobj = Me.OLEObjects ("ListBox1") Đặt Qualifier = LBobj.Object If Target.Row > 3 Và Target.Column = 3 Sau đó Đặt fillRng = Target Với ​​LBobj .Left = fillRng.Left .Top = fillRng.Top .Width = fillRng.Width .Height = 155 .Vible = True End With Else LBobj.Vible = False If Not fillRng Is Nothing Then fillRng.ClearContents With Qualifier If .ListCount 0 Then For i = 0 To .ListCount - 1 If fillRng.Value = "" Then If .Selected (i) Then fillRng.Value = .List (i) Khác Nếu .Selected (i) Then fillRng.Value = _ fillRng.Value & "," & .List (i) End If Next End If For i = 0 To .ListCount - 1 .Selected (i) = False Next End With Set fillRng = Không có gì Kết thúc Nếu Kết thúc Nếu Kết thúc Sub
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào tất cả, tôi có thể thực hiện danh sách thả xuống của mình một cách hoàn hảo, nhưng câu hỏi của tôi là: khi tôi chọn tất cả các mục được mã hóa, nó sẽ lần lượt di chuyển theo chiều ngang qua ô, ví dụ: vàng, xanh lá cây, đen, đỏ. Nhưng làm thế nào tôi có thể làm cho nó trông theo chiều dọc ?, chẳng hạn như: Màu cam trống màu vàng Màu đỏ Bởi vì theo chiều ngang, ô trở nên khá dài khi chọn nhiều mục. Bạn có thể vui lòng cho tôi biết nếu có bất kỳ cách nào để làm điều này? Cảm ơn bạn, Desiree
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tôi đã quản lý để sử dụng mã này và tạo thành công nhiều hộp thả xuống lựa chọn. Nó hoạt động khi tôi đóng và mở lại vào những ngày khác nhau. Tuy nhiên, bây giờ không phải tất cả các ô tôi đã chọn ban đầu đều cho phép chọn nhiều ô. Chỉ những cái được thực hiện trước đó, mặc dù sử dụng mã cho toàn bộ bảng tính. Bạn có thể giúp?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Im có cùng một vấn đề.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
các ô có nhiều khả năng bị khóa, nhấp chuột phải vào tất cả chúng, đi tới định dạng ô, bảo vệ, sau đó bỏ chọn tùy chọn ô bị khóa
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tôi đã tạo một danh sách thả xuống trong đó có thể chọn nhiều lựa chọn văn bản, chẳng hạn như "dinh dưỡng", "cân nặng" và "công việc" cho lý do gọi điện của từng người gọi. Tôi có một trang tóm tắt mà tôi muốn xem mỗi lý do được chỉ định trong một tháng cụ thể. Tôi sẽ sử dụng công thức nào để yêu cầu Excel rút ra và kiểm đếm từng thứ riêng biệt trong một tháng nhất định? Hiện tại, theo cách tôi thiết lập, nó chỉ tính đúng nếu tôi có một lý do trong ô cho mỗi người gọi.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Ngày tốt,
Xin lỗi không thể giúp bạn giải quyết vấn đề này. Vui lòng cho tôi biết nếu bạn tìm thấy câu trả lời.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tôi đang cố tạo 4 cột với danh sách thả xuống nơi tôi có thể chọn nhiều giá trị. Làm cách nào để sửa đổi mã VBA "danh sách thả xuống có nhiều lựa chọn" để khi tôi nhấp vào một giá trị đã được nhập, nó sẽ xóa nó khỏi ô? Cảm ơn bạn trước.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Randy thân mến,
Ý bạn là gì "khi tôi nhấp vào một giá trị đã được nhập, nó sẽ xóa nó khỏi ô?"
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tôi có cùng một câu hỏi. Danh sách thả xuống của tôi không nhớ các giá trị đã chọn. Nếu ai đó nhấp vào ô đã được điền (không phải bởi họ, mà là người khác), các giá trị đã chọn sẽ bị xóa và ô đó lại trống.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tôi đang sử dụng mã bên dưới để cho phép nhiều lựa chọn trên nhiều trang tính nhưng khi tôi chuyển đến một trang tính khác trong sổ làm việc, đa lựa chọn biến mất. Khi tôi lưu tệp và quay lại, tệp sẽ hoạt động đối với một tab có mã nhưng một lần nữa khi tôi nhấp vào tab khác có mã, tệp đó không còn hoạt động nữa. Bất kỳ ý tưởng nào về cách khắc phục nó để nếu tôi nhấp vào một trang tính có mã VBA, nó sẽ luôn cho phép nhiều lựa chọn?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào, ich bin Totaler VBA Laie. Ich versuche den Code so zu modifizieren, dass
a) Chết Mehrfachauswahl nicht ở allen, sondern nur ein zwei Spalten aktiv ist
b) ich Item auch wieder rausnehmen kann, zB in dem ich in der Listenauswahl das Item noch einmal anklicke (Beispiel: ich habe über die Mehrfachauswahl ausgewählt: A, D, X, Y ... nun fällt mir auf, dass D nicht dazu gehört. Beim aktuellen Mã müsste ich Eingaben entfernen und neu auswählen).
Cảm ơn trước!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tôi không thể tiếp tục tạo nhiều lựa chọn trong danh sách thả xuống. Tôi đã nghe hướng dẫn và đọc tài liệu nhưng vẫn không thể tạo. Ai đó vui lòng có thể giúp tôi được không?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tôi biết đây có thể là một sự ngẫu nhiên hoàn toàn, nhưng tôi sử dụng một biến thể của VBA mà không có vấn đề gì. Ngoại trừ trên một trang, nếu bạn chọn ba tùy chọn đầu tiên, nó sẽ không cho phép bạn chọn tùy chọn thứ tư. Nó sẽ cho phép bạn chọn tùy chọn thứ 5, thứ 6, v.v., không phải tùy chọn thứ 4. Suy nghĩ?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Hi Robert,
Tôi đã kiểm tra mã nhưng không tìm thấy vấn đề như bạn đề cập. Bạn có thể cho tôi biết bạn đang sử dụng phiên bản Excel nào không? Cảm ơn bình luận của bạn.
Không có bình luận nào được đăng ở đây
Tải thêm
Để lại ý kiến ​​của bạn
Đăng với tư cách khách
×
Đánh giá bài viết này:
0   Nhân vật
Các vị trí được đề xuất

Kết nối với chúng tôi

Bản quyền © 2009 - www.extendoffice.com. | Đã đăng ký Bản quyền. cung cấp bởi ExtendOffice. | BẢN ĐỒ CHI NHÁNH
Microsoft và logo Office là các nhãn hiệu hoặc nhãn hiệu đã đăng ký của Microsoft Corporation tại Hoa Kỳ và / hoặc các quốc gia khác.
Được bảo vệ bởi Sectigo SSL