Chọn nhiều mục trong danh sách thả xuống của Excel

Chọn nhiều mục trong danh sách thả xuống của Excel

Chào, tôi đã tạo một bảng tính và muốn hiển thị nhiều tên trong cùng một ô. Tôi đã tạo danh sách thả xuống và nó hoạt động. Hôm trước tôi tìm thấy một đoạn mã VBA để chèn vào bảng tính và nó đã hoạt động. Điều này cho phép tôi chọn nhiều tên trong một ô. Tuy nhiên, hôm nay nó lại không hoạt động nữa??? Đoạn mã vẫn còn đó nhưng khi tôi cố gắng chọn nhiều tên, nó chỉ thay thế tên đầu tiên được chọn.

Đây là đoạn mã tôi đã sử dụng:

Private Sub Worksheet_Change(ByVal Target As Range)
Được phát triển bởi Contextures Inc.
www.contextures.com
Dim rngDV As Range
Dim oldVal As String
Dim newVal As String
Nếu Target.Count > 1 thì chuyển đến trình xử lý thoát.

Khi xảy ra lỗi, tiếp tục.
Đặt rngDV = Cells.SpecialCells(xlCellTypeAllValidation)
Khi xảy ra lỗi, hãy chuyển đến trình xử lý thoát.

Nếu rngDV là Nothing thì chuyển đến trình xử lý thoát.

Nếu Intersect(Target, rngDV) Is Nothing Then
'không làm gì cả'
Khác
Application.EnableEvents = False
newVal = Target.Value
Ứng dụng.Hoàn tác
oldVal = Target.Value
Target.Value = newVal
Nếu Target.Column = 3 thì
Nếu oldVal = "" thì
'không làm gì cả'
Khác
Nếu newVal = "" thì
'không làm gì cả'
Khác
Target.Value = oldVal _
& ", " & newVal
LƯU Ý: Bạn có thể sử dụng xuống dòng.
' thay vì dấu phẩy
' Target.Value = oldVal _
' & Chr(10) & newVal
Kết thúc nếu
Kết thúc nếu
Kết thúc nếu
Kết thúc nếu

exitHandler:
Ứng dụng.ChoPhóngSựKiện = Đúng
End Sub

Tôi đang làm sai ở điểm nào vậy?




Trả lời:
Có thể các sự kiện của bạn đã bị vô hiệu hóa. Hãy thử chạy macro này: >
>Sub ResetEvents() >Application.EnableEvents = True >End Sub

Trả lời:

Tôi hoàn toàn là người mới trong lĩnh vực này nên cần sự giúp đỡ. Tôi vừa sao chép và dán đoạn mã VBA đầu tiên và nó hoạt động... thật bất ngờ! Vậy tôi phải chèn đoạn mã này vào đâu/như thế nào?



Trả lời:
Sao chép mã của tôi. Sử dụng tổ hợp phím Alt-F11 để vào VBE, sau đó nhấn Ctrl-R để mở trình khám phá dự án. Tìm dự án của sổ làm việc của bạn (theo tên) và chọn nó, sau đó sử dụng menu Chèn / Mô-đun để chèn một mô-đun mã chuẩn. Khi bạn làm như vậy, một khung mã trống sẽ xuất hiện ở bên phải. Chọn nó, dán mã, đặt con trỏ vào mã và nhấn F5 để chạy mã.
>Theo tôi thấy, có vẻ như mã của bạn đã bị gián đoạn bằng cách nào đó, khiến các sự kiện bị vô hiệu hóa. Việc đóng Excel và mở lại sẽ đặt lại các sự kiện về trạng thái mặc định (được kích hoạt), vì vậy nếu mã đang hoạt động thì có khả năng nó sẽ tiếp tục hoạt động. Nếu nó lại ngừng hoạt động, hãy thử macro của tôi và xem liệu nó có giúp ích được không.

Trả lời:

Nếu mã của bạn ngừng hoạt động, bạn nên đăng mã đó lên đây.

Có lẽ có lý do nào đó và thay vì thiết lập lại các sự kiện theo cách thủ công, bạn nên tìm cách phòng ngừa hoặc ít nhất là thiết lập một cơ chế xử lý lỗi để kích hoạt lại các sự kiện.

Gord



Trả lời:

Được rồi, đây là đoạn mã gốc của tôi, đoạn mã này đã từng hoạt động:

Private Sub Worksheet_Change(ByVal Target As Range)
Được phát triển bởi Contextures Inc.
www.contextures.com
Dim rngDV As Range
Dim oldVal As String
Dim newVal As String
Nếu Target.Count > 1 thì chuyển đến trình xử lý thoát.

Khi xảy ra lỗi, tiếp tục.
Đặt rngDV = Cells.SpecialCells(xlCellTypeAllValidation)
Khi xảy ra lỗi, hãy chuyển đến trình xử lý thoát.

Nếu rngDV là Nothing thì chuyển đến trình xử lý thoát.

Nếu Intersect(Target, rngDV) Is Nothing Then
'không làm gì cả'
Khác
Application.EnableEvents = False
newVal = Target.Value
Ứng dụng.Hoàn tác
oldVal = Target.Value
Target.Value = newVal
Nếu Target.Column = 3 thì
Nếu oldVal = "" thì
'không làm gì cả'
Khác
Nếu newVal = "" thì
'không làm gì cả'
Khác
Target.Value = oldVal _
& ", " & newVal
LƯU Ý: Bạn có thể sử dụng xuống dòng.
' thay vì dấu phẩy
' Target.Value = oldVal _
' & Chr(10) & newVal
Kết thúc nếu
Kết thúc nếu
Kết thúc nếu
Kết thúc nếu

exitHandler:
Ứng dụng.ChoPhóngSựKiện = Đúng
End Sub

Hôm nay tôi mở một bảng tính mới và dán đoạn mã này vào nhưng nó không hoạt động. Ngoài ra, trên màn hình máy tính của tôi cũng có dấu chấm than (!) trên bảng tính mà tôi đã lưu hôm trước??

Cảm ơn bạn đã giúp đỡ.



Trả lời:
Hãy chắc chắn rằng bạn dán mã vào mô-đun mã của trang tính - nhấp chuột phải vào tab trang tính, chọn Xem mã, và dán mã vào cửa sổ hiện ra, chứ không phải vào mô-đun mã thông thường.

Trả lời:

Tôi đang ở chỗ đó, và tôi vừa mới nhập mã của bạn vào như bạn đã hướng dẫn nhưng nó vẫn không hoạt động?



Trả lời:

Tôi đang ở chỗ đó, và tôi vừa mới nhập mã của bạn vào như bạn đã hướng dẫn nhưng nó vẫn không hoạt động?


Debra đã xử lý lỗi trong mã của mình nên không có lý do gì để nó bị vô hiệu hóa.

Khi bạn nói "chọn nhiều tên", ý bạn là chọn cùng lúc phải không? Bạn không thể làm vậy, chỉ có thể chọn từng tên một để tạo danh sách trong một ô.

Gord



Trả lời:
Vấn đề đã được giải quyết! Không hiểu sao chức năng Macro lại bị vô hiệu hóa trên trang tính. Cảm ơn mọi người.

Trả lời:

Chúng ta có thể sử dụng đoạn mã này với nhiều danh sách thả xuống trong một bảng tính không? Nếu không, làm thế nào để chỉ định danh sách thả xuống nào cần áp dụng mã?

Comments

Popular posts from this blog

Điều tôi muốn làm trong Excel 2010 là tạo một nút tùy chỉnh và gắn nó vào thanh công cụ Truy nhập nhanh và chạy một macro cụ thể.

Excel 2016 - mở tất cả các tệp trong MỘT phiên bản

Mở tài liệu Excel và Word từ Outlook Lỗi - Không đủ bộ nhớ