Làm thế nào để bảo vệ xác thực dữ liệu thất bại trong khi sao chép và dán dữ liệu?


2

Tôi đang sử dụng xác nhận dữ liệu trên một cột theo danh sách được xác định trước.

nhưng nó có thể dễ dàng bị đánh lừa hoặc bỏ qua bằng cách dán dữ liệu (Ctrl + V) từ nguồn khác.

Vì vậy, làm thế nào tôi có thể bảo vệ người dùng không thể nhập dữ liệu sai hoặc bên ngoài từ danh sách xác nhận của tôi.

Cảm ơn


Làm thế nào bạn bảo vệ nó bây giờ?
gronostaj

Không thực sự là một câu trả lời, nhưng bạn có thể sử dụng ActiveSheet.CircleInvalidđể làm nổi bật các giá trị không hợp lệ.
Patrick Honorez

Câu trả lời:


1

Hãy thử sử dụng móc / xử lý dán để ngăn điều này xảy ra.

Đó là một cái gì đó của hack, nhưng trong VBA của bạn, bạn có thể liên kết các chức năng tùy chỉnh với các hành động phím / nhấp thường được sử dụng để kích hoạt các sự kiện "dán". Các chức năng tùy chỉnh đó có thể truy cập vào lựa chọn bị ảnh hưởng bởi dán và kích hoạt quy tắc xác thực / phụ tùy chỉnh trên nó ngay lập tức. Để biết ví dụ về chức năng này, hãy thử hướng dẫn này (đặc biệt là phần xa hơn có tiêu đề "Xác thực").

Điều này không ngăn người dùng dán dữ liệu không hợp lệ ngay từ đầu, nhưng dẫn đến việc thu hồi ngay lập tức dữ liệu không hợp lệ, có thể đủ gần với điều tương tự cho mục đích của bạn.


1

Nếu việc chặn các sự kiện Paste có vẻ phức tạp thì một giải pháp thay thế là chỉ sử dụng BeforeSavesự kiện của bảng tính. Trong phần này, hãy kiểm tra (các) giá trị và, nếu có không chính xác, hãy hủy Lưu bằng cách cài đặt

Cancel = True

Bạn có thể sử dụng Deactivatesự kiện của bảng tính nhưng điều này không cung cấp một cách đơn giản để hủy kích hoạt, nhưng cảnh báo MsgBoxcó thể được hiển thị.


0

Rahul, tôi đang làm việc về một vấn đề tương tự ngay bây giờ. Đã đọc một số diễn đàn Excel và các ban trợ giúp về vấn đề này, tôi có thể nói với bạn rằng đó thực sự là HAI vấn đề:

A) một bản sao dán tiêu chuẩn trong Excel sao chép các xác nhận từ nguồn đến đích. Nếu bạn không có bất kỳ biện pháp bảo vệ nào, điều này sẽ xóa sạch xác nhận khỏi cột đặc biệt của bạn khi người dùng dán vào nó. B) Excel chỉ thực hiện xác nhận trên các ô đơn lẻ chứ không phải trên các hành động dán. Khá yếu.

Tôi có thể giải quyết vấn đề A cho bạn; Tôi nghĩ bạn sẽ cần VBA để xác thực tùy chỉnh cho vấn đề B. Xem các liên kết ở dưới cùng của bài đăng này để biết một số ý tưởng; Tôi không phải là một chuyên gia tại VBA vì vậy tôi thực sự không thể nói cái nào sẽ phù hợp với bạn.

Đối với sự cố A: chuyển đến tab Đánh giá và bật Bảo vệ ở cấp độ trang tính hoặc sổ làm việc :) Tôi chưa thấy ai khác đề cập đến giải pháp này, nhưng nó hoạt động rất tốt. Khi bảo vệ được bật, người dùng không thể ghi đè các xác nhận trong cột của bạn bằng một dán.

Các quyền mặc định cho người dùng trong một trang được bảo vệ là khá tối thiểu. Nếu người dùng của bạn cần nhiều quyền, như khả năng xóa hàng, chỉ cần kích hoạt các quyền họ cần trong hộp thoại Bảo vệ bằng cách chọn các hộp kiểm. Tôi có mọi thứ được kích hoạt ngoại trừ Chèn Siêu liên kết và tôi vẫn không thể ghi đè xác thực khi bật bảo vệ.

Dưới đây là một số liên kết có liên quan cho bạn:

http://www.mrexcel.com/forum/excel-questions/64596-data-validation-why-does-not-work-when-pasting-values.html

http: // s trànsheetpage.com/index.php/tip/ensuring_that_data_validation_is_not_delatted/

https://social.msdn.microsoft.com/Forums/office/en-US/961e3921-5fd2-430e-bf50-aecb75a4fe05/excel-cell-data-validations-fails-on-copypaste

http://www.mrexcel.com/forum/excel-questions/519807-pasting-into-cell-data-validation.html

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.