Ken tự hỏi liệu có một hàm trang tính cho biết nội dung của một ô có được in đậm hay không. Anh ta có thể tìm thấy các hàm thông tin khác, chẳng hạn như ISBLANK, nhưng không thể tìm thấy một hàm cho biết ô có đậm hay không.

Không có hàm ISBOLD nào được tích hợp trong Excel. Có một cách rất phức tạp để thực hiện việc này mà không cần dùng đến macro, nhưng nó chỉ hoạt động với một số phiên bản Excel. Rõ ràng, ví dụ, phương pháp này sẽ không hoạt động với Office 365, vì có vẻ như Microsoft cuối cùng đã loại bỏ hỗ trợ cho nó. Hàm Excel 4 cũ này, được gọi là GET.CELL, sẽ hoạt động với một số phiên bản Excel cũ hơn. Đây là cách bạn sử dụng nó trong công thức:

=IF(GET.CELL(20,A1), "Bold", "Not Bold")

Hàm GET.CELL trả về giá trị True nếu ít nhất ký tự đầu tiên trong ô được in đậm.

Một cách tiếp cận tốt hơn sẽ là tạo một Hàm do người dùng xác định trong VBA có thể được gọi từ trang tính của bạn. Đây là một phiên bản đơn giản của một UDF:

Function CheckBold(cell As Range) As Boolean     Application.Volatile     CheckBold = cell.Font.Bold End Function

Để sử dụng nó trong trang tính của bạn, bạn sẽ làm như vậy theo cách sau:

=IF(CheckBold(A1), "Bold", "Not Bold")

Hàm CheckBold sẽ chỉ cập nhật khi trang tính của bạn được tính toán lại, chứ không phải nếu bạn chỉ áp dụng định dạng đậm hoặc xóa nó khỏi ô A1.

Cách tiếp cận này có thể hoạt động đối với hầu hết các trường hợp nhưng hãy hiểu rằng thuộc tính Bold thực sự có thể có ba cài đặt khả thi — Đúng, Sai và Null. Thuộc tính được đặt thành Sai nếu không có ký tự nào trong ô được in đậm. Nó được đặt thành True nếu chúng đều được in đậm. Cuối cùng, nó được đặt thành Null nếu chỉ một số ký tự trong ô được in đậm. Nếu bạn nghĩ rằng bạn có thể gặp phải tình huống này, thì bạn sẽ cần phải sửa đổi chức năng CheckBold:

Function CheckBold(cell As Range) As Integer     Dim iBold As Integer

Application.Volatile

iBold = 0     If IsNull(cell.Font.Bold) Then         iBold = 2     Else         If cell.Font.Bold Then iBold = 1     End If

CheckBold = iBold End Function

Lưu ý rằng bây giờ hàm trả về một giá trị, từ 0 đến 2. Nếu nó trả về 0, thì không có chữ in đậm trong ô. Nếu nó trả về 1, thì toàn bộ ô được in đậm. Nếu nó trả về 2, thì có một phần in đậm trong ô.

_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 (13733) áp dụng cho Microsoft Excel 2007, 2010, 2013, 2016, 2019 và Excel trong Office 365.