Chris sử dụng kỹ thuật xác thực dữ liệu để ngăn chặn thành công thông tin không phải là duy nhất được nhập vào một cột. (Kỹ thuật này đã được mô tả trong các số trước của ExcelTips.) Anh ấy lưu ý đúng rằng vẫn còn vấn đề với việc xác thực dữ liệu, tuy nhiên: Ai đó có thể dán thông tin vào một ô và bỏ qua thành công tất cả các kiểm tra tại chỗ.

Ví dụ: nếu bạn nhập “George” vào ô A8, rồi nhập “George”

trong A9, xác thực dữ liệu thông thường sẽ tạo ra lỗi, như người ta mong đợi, cho biết rằng giá trị bạn đang cố nhập không phải là duy nhất.

Tuy nhiên, nếu bạn nhập “George” vào ô A8, hãy sao chép ô đó và dán vào ô A9, không có lỗi xác thực dữ liệu nào được kích hoạt – cho phép dán.

Không có cách nào trực tiếp giải quyết vấn đề này trong Excel. Tuy nhiên, bạn có thể khiến Excel thực hiện một số kiểm tra bất cứ khi nào bạn cố gắng dán. Hãy xem xét macro sau:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

On Error Resume Next     For Each TmpRng In Target         TmpVal = TmpRng.Validation.Type         If TmpVal > 0 Then             If Application.CutCopyMode = 1 Then                 MsgBox "You cannot paste into validated cells."

Application.CutCopyMode = False                 Exit Sub             End If         End If     Next End Sub

Macro này chỉ được chạy khi lựa chọn thay đổi trong một trang tính. (Mã này cần phải nằm trong cửa sổ mã cho một trang tính.) Nó kiểm tra các ô đích (những ô đang được chọn) và nếu người dùng đang cố gắng dán vào một ô có xác thực đang hoạt động, nó sẽ không cho phép.

Hơn nữa, người dùng sẽ thấy một hộp thoại cho biết lỗi.

Bạn nên lưu ý rằng quy trình này chỉ kiểm tra xem việc dán vào ô được xác thực dữ liệu có đang được thực hiện hay không. Nếu đúng như vậy thì lỗi sẽ được tạo ra.

Quy trình không kiểm tra xem liệu những gì đang được dán có thực sự được phép theo các quy tắc xác thực trong các ô đích hay không; điều đó sẽ phức tạp hơn nhiều và yêu cầu mã hóa nhiều hơn một chút.

_Lưu ý: _

Nếu bạn muốn biết cách sử dụng các macro được mô tả trên trang này (hoặc trên bất kỳ trang nào khác trên trang ExcelTips), tôi đã chuẩn bị một trang đặc biệt bao gồm thông tin hữu ích.

ExcelTips là nguồn của bạn để đào tạo Microsoft Excel hiệu quả về chi phí.

Mẹo này (2449) áp dụng cho Microsoft Excel 97, 2000, 2002 và 2003.