Sử dụng Data Validation để bảo vệ những ô chứa công thức Kể từ đây, mỗi khi bạn nhập bất kỳ thứ gì vào trong những ô chứa công thức, hoặc bạn mu n sửa lại công thức, sẽ có một cảnh báo xuất hiện, ngăn không cho bạn nhập vào. Xin nhắc lại, phương pháp này không cấm việc xóa hẳn công thức, cũng như dán đè thứ gì đó vào những ô chứa công thức. Tự động bật tắt chức năng bảo vệ Phương pháp này, sẽ t động bật chức năng bảo vệ bảng tính (Protect) mỗi...
Nội dung trích xuất từ tài liệu:
Tự học Excel part 23 Sử dụng Data Validation để bảo vệ những ô chứa công thứcKể từ đây, mỗi khi bạn nhập bất kỳ thứ gì vào trong những ô chứa công thức, hoặc bạn mu n sửalại công thức, sẽ có một cảnh báo xuất hiện, ngăn không cho bạn nhập vào. Xin nhắc lại, phươngpháp này không cấm việc xóa hẳn công thức, cũng như dán đè thứ gì đó vào những ô chứa côngthức.Tự động bật tắt chức năng bảo vệPhương pháp này, sẽ t động bật chức năng bảo vệ bảng tính (Protect) mỗi khi bạn ch n một ôđã được khóa (locked), nhưng nó cũng sẽ t động tắt chức năng bảo vệ khi bạn ch n một ôkhông bị khóa.Để bắt đầu, bạn hãy chắc chắn rằng những ô bạn mu n bảo vệ (ô chứa công thức) đã được khóa,còn những ô không cần bảo vệ thì không bị khóa, như tôi đã trình bày ở phương pháp thứ nhất.Sau đó, bạn nhấn Alt+F11, nhấn vào Sheet mà bạn mu n bảo vệ các ô đã khóa ở trong đó, rồinhập vào trong khung soạn thảo đoạn code sau đây:Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Locked = True Then Me.Protect Password:=Secret Else Me.Unprotect Password:=Secret End IfEnd SubNếu không cần đến password, bạn không cần dùng đoạn Password:=Secret, hoặc nếu muốn Passwordlà thứ gì khác, bạn sửa lại chữ Secret bằng cái bạn muốn.Nếu bạn lo rằng người ta có thể vào trong khung soạn thảo VBA để xem password, bạn có thể bảo vệ cáccode này (không cho xem) bằng cách chọn Tools ➝ VBAProject Properties, chọn tab Properties, chọnLock Project for Viewing, và nhập vào một password.Tuy nhiên, phương pháp này cũng không hoạt động hoàn hảo, mặc dù nó cũng giúp bạn được phần nàoviệc bảo vệ các công thức. Từ khóa Target được sử dụng trong đoạn code sẽ chỉ để tham chiếu đến ôđang active ngay tại thời điểm nó được chọn (xin nói thêm, cho dù bạn chọn một dãy, nhưng trongdãy đó, chỉ có một ô active mà thôi, là ô đang có màu khác với những ô còn lại). Vì l{ do này, nếu mộtngười nào đó chọn một dãy các ô (với ô active không bị khóa), thì người đó có thể xóa toàn bộ dãy ônày, bởi vì khi đó thì chức năng Unprotect đã được tự động bật! 4. Sử dụng Data-Validation khi danh sách nguồn nằm trong một Sheet khácSử dụng Data-Validation là một cách dễ nhất để áp dụng một quy tắc nhập liệu cho một dãy dữ liệu.Theo mặc định, Excel chỉ cho phép Data-Validation sử dụng những danh sách nguồn nằm trong cùngmột Sheet với dãy dữ liệu sẽ được áp dụng quy tắc này. Tuy nhiên, vẫn có cách để lách khỏi chuyệnđó.Chiêu này sẽ giúp bạn làm cho Data-Validation có thể sử dụng những danh sách nguồn nằm trong mộtSheet khác. Cách thứ nhất là lợi dụng chính việc đặt tên cho một dãy của Excel, cách thứ hai là sử dụngmột hàm để gọi ra danh sách đó.Cách 1: Sử dụng Name cho dãy nguồnCó lẽ cách nhanh nhất và dễ nhất để vượt qua rào cản Data-Validation của Excel là đặt tên cho dãy màbạn sẽ dùng làm quy tắc nhập liệu. Để biết cách đặt tên cho dãy, bạn xem ở loạt bài này: Sử dụng têncho dãy.Giả sử bạn đã đặt tên cho dãy sẽ dùng làm quy tắc nhập liệu là MyRange. Bạn chọn ô (hoặc dãy) trongbất kz Sheet nào mà bạn muốn có một danh sách xổ ra để nhập liệu, rồi trong menu Data trên Ribbon,bạn chọn Data Tools | Data Validation [E2003: Data | Validation]. Chọn List trong danh sách các Allow,và trong khung Source, bạn nhập vào =MyRange. Nhấn OK. Bởi vì bạn đã sử dụng một Name để làm List,nên bạn có thể áp dụng Data-Validation này cho bất kz Sheet nào.Cách 2: Sử dụng hàm INDIRECTHàm INDIRECT() cho phép bạn tham chiếu đến ô chứa dữ liệu text đại diện cho một địa chỉ ô. Và rồi bạncó thể sử dụng ô đó như môt tham chiếu cục bộ, cho dù nó tham chiếu đến dữ liệu trong một Sheetkhác. Bạn có thể sử dụng tính năng này để tham chiếu đến nơi chứa dãy mà bạn sẽ dùng làm danh sáchnguồn cho quy tắc Data-Validation.Giả sử, dãy chứa danh sách nguồn này nằm ở Sheet1, trong dãy $A$1:$A$8. Để tạo một Dala-Validation,bạn cũng làm những bước như tôi đã nói ở cách 1, nhưng thay vì gõ tên dãy vào trong Source, thì bạnnhập vào đó công thức: =INDIRECT(Sheet1!$A$1:$A$8). Hãy chắc chắn rằng tùy chọn In-cell drop-down đang được kích hoạt, và nhấn OK.Nếu tên Sheet của bạn có chứa khoảng trắng, hoặc có dấu tiếng Việt, bạn phải đặt tên Sheet trong mộtcặp nháy đơn (). Ví dụ, giả sử tên Sheet chứa danh sách nguồn là Sheet 1 (chứ không phải Sheet1), thìbạn sửa công thức trên lại như sau: =INDIRECT(Sheet 1!$A$1:$A$8). Chỗ khác nhau so với công thứchồi nãy là có thêm một dấu nhấy đơn () sau dấu nháy kép (), và một dấu nháy đơn () nữa trước dấuchấm than (!).Xin mở một ngoặc đơn: Nếu như có thể được, khi gặp những tham chiếu đến tên Sheet, bạn nên tậpthói quen luôn luôn bỏ nó vào trong cặp dấu nháy đơn. Điều này, tuy chẳng có tác dụng gì với những tênsheet như Sheet1, DMHH... nhưng nó sẽ giúp bạn không bao giờ gặp lỗi, khi bạn hay đặt tên Sheet cókhoảng trắng, hay là có bỏ dấu tiếng Việt...Ưu điểm và Khuyết điểm của cả hai cách đã nêu trênĐặt tên cho dãy, và dùng hàm I ...