Alan hỏi liệu có cách nào để xác định nhanh chóng và dễ dàng những ô nào được hợp nhất trong sổ làm việc do người khác tạo không. Trên thực tế, có một số cách khác nhau mà bạn có thể sử dụng để xác định các tế bào này.

Một phương pháp để xác định các ô là sử dụng khả năng tìm kiếm của Excel. Làm theo các bước sau:

  1. Nhấn Ctrl + F. Excel sẽ hiển thị tab Tìm của hộp thoại Tìm và Thay thế.

  2. Nếu cần, hãy nhấp vào nút Tùy chọn để đảm bảo hộp thoại Tìm và Thay thế được mở rộng để hiển thị tất cả các tùy chọn. (Xem Hình 1.)

  3. Đảm bảo hộp Tìm gì trống.

  4. Với điểm chèn trong hộp Tìm gì, hãy nhấp vào nút Định dạng. Excel sẽ hiển thị hộp thoại Tìm Định dạng.

  5. Đảm bảo rằng tab Căn chỉnh được hiển thị. (Xem Hình 2.)

  6. Đảm bảo rằng hộp kiểm Hợp nhất các ô được chọn (sẽ có một dấu kiểm trong hộp kiểm).

  7. Bấm OK để đóng hộp thoại Tìm Định dạng.

  8. Nhấp vào Tìm tất cả.

Excel tìm kiếm bất kỳ ô đã hợp nhất nào và nếu chúng nằm ở vị trí nào, các ô đó sẽ được hiển thị ở cuối hộp thoại Tìm và Thay thế. Sau đó, bạn có thể chọn một trong các phạm vi được tìm thấy và phạm vi tương ứng được chọn trong trang tính.

Nếu muốn, bạn có thể dùng macro để tìm các ô đã hợp nhất khác nhau trong trang tính. Macro sau đây có lẽ cho thấy phương pháp đơn giản nhất để thực hiện việc này:

Sub FindMerged1()

Dim c As Range     For Each c In ActiveSheet.UsedRange         If c.MergeCells Then             MsgBox c.Address & " is merged"

End If     Next End Sub

Macro cụ thể này bước qua tất cả các ô trong trang tính (tốt, ít nhất là những ô nằm trong usedRange) và, nếu ô là một phần của ô đã hợp nhất, một hộp thông báo sẽ được hiển thị. Lưu ý rằng thuộc tính thích hợp đang được kiểm tra là thuộc tính MergeCells. Điều này được đặt thành True nếu ô được hợp nhất với một ô khác.

Tất nhiên, một macro như vậy có thể mất khá nhiều thời gian để chạy nếu trang tính có nhiều ô và thậm chí lâu hơn nếu một số ô đó được hợp nhất. Macro của bạn sẽ chạy nhanh hơn nếu nó không dừng lại ở mỗi ô đã hợp nhất và hiển thị một hộp thoại. Phiên bản sau có một cách tiếp cận khác, lấp đầy mỗi ô đã hợp nhất bằng màu vàng:

Sub FindMerged2()

Dim c As Range     For Each c In ActiveSheet.UsedRange         If c.MergeCells Then             c.Interior.ColorIndex = 36         End If     Next End Sub

Một biến thể của cách tiếp cận này có thể là tạo ra một hàm do người dùng định nghĩa chỉ trả về True hoặc False nếu ô được hợp nhất:

Function FindMerged3(rCell As Range)

FindMerged3 = rCell.MergeCells End Function

Với chức năng đơn giản này, bạn có thể sử dụng định dạng có điều kiện để làm nổi bật các ô bằng cách nào đó nếu chúng được hợp nhất. (Nếu hàm trả về giá trị True, thì định dạng có điều kiện sẽ áp dụng bất kỳ định dạng nào bạn chỉ định cho ô.)

Cuối cùng, nếu bạn muốn một danh sách các ô được hợp nhất trong trang tính, bạn có thể chỉ cần đặt macro của mình lại với danh sách đó thay vì tô màu các ô:

Sub FindMerged4()

Dim c As Range     Dim sMsg As String

sMsg = ""

For Each c In ActiveSheet.UsedRange         If c.MergeCells Then             If sMsg = "" Then                 sMsg = "Merged worksheet cells:" & vbCr             End If             sMsg = sMsg & c.Address & vbCr         End If     Next     If sMsg = "" Then         sMsg = "No merged worksheet cells."

End If

MsgBox sMsg End Sub

Biến thể này hiển thị một hộp thông báo duy nhất ở cuối macro, cho biết địa chỉ của mọi ô đã hợp nhất nằm trong trang tính.

_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 (3905) áp dụng cho Microsoft Excel 97, 2000, 2002 và 2003. Bạn có thể tìm phiên bản của mẹo này cho giao diện ribbon của Excel (Excel 2007 trở lên) tại đây: