Hector có một trang tính lớn chứa khoảng 600 hàng và 70 cột. Trải khắp 43.000 ô này là khoảng 200 ô có bình luận. Hector muốn trích xuất các nhận xét và đặt chúng vào các ô bên phải phần nội dung chính của bảng dữ liệu. Ví dụ: nếu một nhận xét được gắn vào ô C43, thì anh ấy muốn văn bản từ nhận xét đó kết thúc trong ô CC43 và nhận xét ban đầu bị xóa.

Bạn có thể nghĩ rằng bạn có thể sử dụng Paste Special để thực hiện tác vụ, nhưng điều đó không hiệu quả. Nếu bạn sao chép các ô ban đầu và sau đó sử dụng Chỉnh sửa | Dán đặc biệt | Nhận xét, sau đó chỉ các nhận xét được dán vào các ô đích. Chúng vẫn là bình luận chứ không phải văn bản trong ô, điều này đi ngược lại mục tiêu của Hector.

Cách duy nhất để xử lý kiểu trích xuất này là sử dụng macro. Thao tác sau, khi chạy trên một vùng chọn ô, sẽ trích xuất các nhận xét, di chuyển văn bản nhận xét, rồi xóa nhận xét ban đầu.

Sub CommentsToCells()

Dim rCell As Excel.Range     Dim rData As Excel.Range     Dim sComment As String

' Horizontal displacement     Const iColOffset As Integer = 78

' extract comments from selected range     If TypeName(Selection) = "Range" Then         Set rData = Intersect(Selection, ActiveSheet.UsedRange)

For Each rCell In rData.Cells             On Error Resume Next             sComment = rCell.Comment.Text             If Len(sComment) > 0 Then                 rCell.Offset(, iColOffset).Value = sComment                 rCell.Comment.Delete             End If             sComment = ""

On Error GoTo 0         Next     End If End Sub

Macro sử dụng hằng số iColOffset để chỉ định bao nhiêu ô bên phải văn bản của nhận xét sẽ được di chuyển. Trong trường hợp này, phần bù (78) bằng ba “bảng chữ cái” (26 * 3), vì vậy văn bản của nhận xét ban đầu ở cột C sẽ kết thúc bằng cột CC.

_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 (2981) áp dụng cho Microsoft Excel 97, 2000, 2002 và 2003. Bạn có thể tìm thấy 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: