Excel cho phép bạn đặt tất cả các loại đối tượng đồ họa trên trang tính của mình. Một loại đối tượng đồ họa thực sự chứa văn bản — hộp văn bản.

Nếu bạn có khá nhiều hộp văn bản trong một trang tính, bạn có thể tự hỏi liệu có cách nào để trích xuất văn bản từ mỗi hộp văn bản và đặt nó vào chính trang tính hay không.

Không có lệnh nào để làm điều này; thay vào đó bạn phải sử dụng macro. Macro sau bước qua từng hộp văn bản trong trang tính và thực hiện trích xuất mong muốn:

Sub ExtractText()

Dim shp As Shape     Dim sLoc As String

For Each shp In ActiveSheet.Shapes         With shp             If Left(.Name, 8) = "Text Box" Then                 sLoc = .TopLeftCell.Address                 Do Until Range(sLoc) = ""

sLoc = Range(sLoc).Offset(1, 0).Address                 Loop                 Range(sLoc) =.TextFrame.Characters.Text                 .Delete             End If         End With     Next End Sub

Vì Excel lưu trữ tất cả các hình dạng đồ họa trong bộ sưu tập Hình dạng, nên bạn có thể xem qua bộ sưu tập và quyết định xem bạn muốn làm việc với hình dạng nào. Trong trường hợp này, tám ký tự đầu tiên của tên hình dạng được chọn. Chỉ khi tên bắt đầu bằng “Hộp văn bản” thì macro mới coi hình dạng là hộp văn bản mà từ đó văn bản có thể được trích xuất.

Thay vì kiểm tra từ ngữ “Hộp văn bản” trong tên, macro cũng có thể kiểm tra xem loại hình dạng nào đang được xem xét. Nếu bạn thích làm điều này, thì chỉ cần thay thế dòng kiểm tra (Nếu còn lại …​) bằng dòng kiểm tra sau:

If shp.Type = msoTextBox Then

Biến sLoc được sử dụng để lưu trữ vị trí của hộp văn bản, được chứa trong thuộc tính .TopLeftCell. Sau đó, vòng lặp Do được sử dụng để đảm bảo rằng ô được trỏ đến bởi địa chỉ là trống. (Điều này ngăn mọi nội dung hiện có của ô không bị ghi đè.) Nếu ô không trống, thì địa chỉ sẽ được “tăng” lên ô tiếp theo trong cột.

Với địa chỉ của một ô trống được xác định, văn bản của hộp văn bản được lưu trữ trong ô. Sau đó, phương thức .Delete được sử dụng để loại bỏ hộp văn bản thực tế.

_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 (11631) áp dụng cho Microsoft Excel 2007, 2010, 2013, 2016, 2019 và Excel trong Office 365. Bạn có thể tìm thấy phiên bản của mẹo này cho giao diện menu cũ hơn của Excel tại đây: