Khi một ô có chứa dữ
liệu, bạn có thể muốn biết dữ liệu trong ô đơn thuần là dữ liệu nhập
vào, hay dữ liệu là kết quả của 1 công thức. Bạn có thể chỉ cần click
chọn ô đó và xem trên thanh công thức. Bạn cũng có thể dùng phím tắt
Ctrl + ~ để chuyển qua lại giữa chế độ xem giá trị và xem công thức.
Chiêu số 19 này sẽ giới thiệu với bạn 1 hàm tự tạo, kết hợp với
Conditional Formatting để đánh dấu ô chứa công thức. Bằng cách này có
thể giúp bạn tìm ra tất cả những ô chứa công thức trong số 10.000 ô mà
không phải ngó từng ô một.
Mặc dù bạn có thể dùng 1 hàm có sẵn của Macro4 trong Conditional Formatting, như sau:
Trong hộp thoại Conditional Formatting, chọn công thức, gõ công thức
này: = CELL(“type”,A1). Nhưng hạn chế của việc dùng hàm Cell() là công
thức sẽ tự tính lại mỗi khi có sự thay đổi nhỏ xíu trong bảng tính. Vì
Cell() là 1 hàm thuộc loại volatile. Khi Excel tính lại Cell() cho
10.000 ô như trên sẽ khiến cho bạn bực mình vì chờ đợi.
Do đó bạn hãy dùng tuyệt chiêu sau đây, đơn giản, dễ làm và không phải hàm loại volatile:
Bạn hãy nhấn Alt – F11 để vào cửa sổ VBA, nhấn chuột phải vào This
Workbook để insert vào 1 module. Nhập đoạn code sau vào khung soạn thảo:
PHP Code:
Function IsFormula (CheckCells As Range)
IsFormula = CheckCells.HasFormula
End Function
Do tính chất của Property HasFormula, hàm bạn mới tạo sẽ trả về các giá
trị luận lý True, False. Nghĩa là khi bạn gõ vào ô bất kỳ công thức =
IsFormula(A1) sẽ cho kết quả True nếu A1 chứa công thức và cho kết quả
False nếu A1 chứa giá trị.
Đóng cửa sổ VBA lại, trở về bảng tính. Bây giờ đánh dấu toàn bộ vùng dữ
liệu của bạn (có thể chọn dư ra một số cột và dòng, phòng khi bạn cập
nhật thêm dữ liệu) sao cho ô A1 là ô hiện hành.
Bằng cách như chiêu số 18, bạn vào được chỗ cần thiết để gõ công thức trong hộp thoại Conditional Formatting, và gõ vào:
=IsFormula(A1), sau đó định dạng tô màu hoặc đổi màu chữ cho khác những ô còn lại.
Sau khi nhấn OK bạn sẽ được kết quả là tất cả những ô chứa công thức sẽ
được tô màu. Nếu bạn thêm hoặc thay đổi 1 ô, nếu ô đó trở thành công
thức thì lập tức ô đó đổi màu.
Đôi khi bạn không thấy kết quả, vì anh Bill lanh chanh và chậm hiểu, anh
ta cho rằng công thức sử dụng hàm của bạn là 1 text nên ảnh tự sửa
thành : =”IsFormula(A1)”. Vậy bạn phải vào chỗ cũ sửa lại.
Bây giờ mỗi khi bạn sửa hoặc thêm 1 ô trở thành công thức, ô đó sẽ có
màu. ngược lại, nếu bạn sửa 1 công thức thành giá trị hoặc thêm giá trị
vào 1 ô, ô đó sẽ không có màu.
Cái CF và cái UDF này đơn giản mà thực sự hữu ích, bạn nhỉ!