Michael có một điều khiển biểu mẫu (hộp kiểm) được liên kết với ô A1. Anh ta có thể đặt một công thức vào ô A1 phân giải thành Đúng hoặc Sai và hộp kiểm phản ánh kết quả đó. Tuy nhiên, nếu ai đó nhấp vào hộp kiểm để thay đổi nó, công thức trong ô A1 sẽ bị ghi đè bởi True hoặc False rõ ràng. Michael cần công thức trong ô A1 để kiểm soát hộp kiểm, nhưng anh ấy cũng cần người dùng có thể chuyển đổi hộp kiểm mà không ghi đè công thức. Anh ấy tự hỏi liệu điều này có khả thi không.

Trong ngắn hạn, điều này là không thể. Microsoft dự định các hộp kiểm để kiểm soát giá trị trong một ô và sau đó bạn có thể tham chiếu ô đó trong các công thức khác. Họ không bao giờ có ý định cho các ô được liên kết chứa công thức.

Một điều bạn có thể thử, nếu muốn, là tạo macro theo dõi một ô và nếu nó thay đổi, hãy cập nhật một ô khác. Ví dụ: bạn có thể buộc hộp kiểm của mình với một ô khác (chẳng hạn như ô B1), để công thức trong ô A1 không bị ảnh hưởng khi hộp kiểm được sử dụng. Sau đó, bạn tạo một macro xử lý sự kiện để kiểm tra bất kỳ thứ gì có trong ô A1 và nếu nó thay đổi, thì macro sẽ sửa đổi những gì có trong ô B1. Sửa đổi này trong ô B1 sau đó sẽ kích hoạt thay đổi trong hộp kiểm.

Một cách tiếp cận dựa trên macro khác là sử dụng macro để viết công thức vào ô A1. Đây là một ví dụ đơn giản về macro như vậy:

Sub CheckBoxState()

Range("A1").Formula = "=IF(" & Range("A1") & _       ",""CHECKED"",""NOT CHECKED"")"

End Sub

Nếu bạn gán macro này cho điều khiển hộp kiểm, thì khi một người nhấp vào hộp kiểm, hai điều sẽ xảy ra. Đầu tiên, trạng thái của hộp kiểm được ghi vào ô A1, ghi đè lên bất cứ thứ gì ở đó. Thứ hai, macro được thực thi, ghi lại công thức vào ô A1. Lưu ý rằng công thức (như được định nghĩa trong macro này) có tính đến giá trị vừa được lưu trữ trong ô A1. Do đó, nếu điều khiển hộp kiểm ghi True vào ô A1, thì macro sẽ nhồi các thông tin sau vào ô:

=IF(TRUE,"CHECKED","NOT CHECKED")

Nhấp lại vào hộp kiểm, giá trị được đưa vào ô sẽ thay đổi thành Sai và công thức được đặt vào ô sẽ thay đổi. Tất nhiên, bạn sẽ cần phải sửa đổi macro để công thức mà nó buộc vào ô A1 phản ánh công thức bạn thực sự muốn ở đó.

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

Mẹo này (113) áp dụng cho Microsoft Excel 2007, 2010, 2013 và 2016.