Excel 2007 - Ngăn chặn cùng một mục nhập dữ liệu trong các ô, nếu cùng một dữ liệu tồn tại ở hàng trên

Excel 2007 - Ngăn chặn cùng một mục nhập dữ liệu trong các ô, nếu cùng một dữ liệu tồn tại ở hàng trên

Tôi có một bảng excel cho phép người dùng nhập dữ liệu theo định dạng đã đặt, tức là Cột C dành cho Số sản phẩm và cột H dành cho danh mục lỗi.

Cột C cho phép nhập miễn phí, Cột H có một danh sách trong mỗi ô (xác thực dữ liệu).

Tôi muốn biết liệu có thể **ngăn** người dùng nhập các giá trị giống nhau trong C5 và H5 hay không nếu chúng đã tồn tại trong C4 và H4.

Xin lưu ý rằng điều này không thể thực hiện được với xác thực dữ liệu vì tính năng này tìm kiếm các giá trị duy nhất trong một cột - Tôi không gặp vấn đề gì với các giá trị trùng lặp trên hai hàng, miễn là các giá trị trùng lặp không tồn tại trong cả hai cột C & H , trên hàng tiếp theo xuống.

Tôi muốn đảm bảo người dùng sử dụng một hàng nếu có nhiều vấn đề xảy ra với một sản phẩm nhưng tất cả đều liên quan đến cùng một loại lỗi.

Tôi không giỏi về VBA, vì vậy sự giúp đỡ của bạn sẽ được đánh giá rất cao.




Trả lời:

Nhấp chuột phải vào tab trang tính và "Xem mã"

Dán mã sự kiện này vào mô-đun đó.

Alt + q để quay lại trang tính

Private Sub Worksheet_Change(ByVal Target As Range)
Const myRange As String = "C5,H5"
On Error GoTo endit
Application.EnableEvents = Sai
Nếu không giao nhau(Target, Range(myRange)) thì không có gì
với mục tiêu
Nếu .Offset(-1, 0).Value = .Value Thì
MsgBox "Bạn không thể làm điều đó"
Ứng dụng.Hoàn tác
kết thúc nếu
kết thúc nếu
kết thúc nó:
Application.EnableEvents = True
kết thúc phụ

kinh doanh



Trả lời:

Mã chưa hoàn thành trong bài viết đầu tiên của tôi.

Sử dụng mã này.

Private Sub Worksheet_Change(ByVal Target As Range)
Const myRange As String = "C5,H5"
On Error GoTo endit
Application.EnableEvents = Sai
Nếu không giao nhau(Target, Range(myRange)) thì không có gì
với mục tiêu
Nếu .Offset(-1, 0).Value = .Value Thì
MsgBox "Bạn không thể làm điều đó"
Ứng dụng.Hoàn tác
kết thúc nếu
Kết thúc với
kết thúc nếu
kết thúc nó:
Application.EnableEvents = True
kết thúc phụ

kinh doanh



Trả lời:

Mã chưa hoàn thành trong bài viết đầu tiên của tôi.

Sử dụng mã này.

Private Sub Worksheet_Change(ByVal Target As Range)
Const myRange As String = "C5,H5"
On Error GoTo endit
Application.EnableEvents = Sai
Nếu không giao nhau(Target, Range(myRange)) thì không có gì
với mục tiêu
Nếu .Offset(-1, 0).Value = .Value Thì
MsgBox "Bạn không thể làm điều đó"
Ứng dụng.Hoàn tác
kết thúc nếu
Kết thúc với
kết thúc nếu
kết thúc nó:
Application.EnableEvents = True
kết thúc phụ

kinh doanh

Chào Gordon,

Nhờ sự giúp đỡ của bạn với điều này. Chỉ cần xác nhận, điều này có áp dụng cho tất cả các ô trong cột C & H không? Tôi hỏi vì mã của bạn là nguồn tĩnh C5 & H5.

Chỉ cần xác nhận rằng về cơ bản, tôi muốn mã so sánh hai hàng văn bản, bất cứ khi nào người dùng đưa dữ liệu vào hàng có sẵn tiếp theo (tất cả trong khi so sánh ô ở trên trong cả C và H).

Cảm ơn một lần nữa.

Asim



Trả lời:

Nếu bạn muốn thay đổi phạm vi thành toàn bộ cột, hãy thay đổi phạm vi.

Const myRange As String = "C:C,H:H"

kinh doanh



Trả lời:

Xin chào Gordon, xin lỗi, tôi đã có mã trong mô-đun chung, thay vì đối tượng trang tính. Tôi đã kiểm tra nó ngay bây giờ và mặc dù lỗi xuất hiện, tôi nghĩ rằng tôi có thể đã mô tả sai ý định của mình.

Mã tại thời điểm này ngăn người dùng nhập cùng một giá trị vào hàng bên dưới, trong cột C hoặc H.

Tôi muốn nó ngăn người dùng nhập cùng một giá trị vào cột H, nếu cùng một số sản phẩm được nhập vào cột C (khi hàng ở trên liên quan đến cùng một sản phẩm và cùng loại lỗi)

Nói cách khác, người dùng có thể gặp hai vấn đề khác nhau với cùng một sản phẩm (Cột C), họ không thể sử dụng hết hai hàng để mô tả cùng một loại lỗi (Cột H) liên quan đến cùng một sản phẩm đó.

Tôi hy vọng điều này có ý nghĩa.

Xin lỗi một lần nữa.

Asim



Trả lời:

Tôi không thể nắm bắt logic đằng sau nhiệm vụ nên sẽ không thể viết mã này cho bạn.'

kinh doanh

Comments

Popular posts from this blog

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

Đ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ể.

Khẩn cấp - File Excel chứa các ký tự đặc biệt ở họ và tên liên hệ