David tự hỏi liệu có thể sử dụng Tìm và Thay thế để định vị và sửa đổi văn bản trong hộp văn bản hoặc trong nhãn trong biểu đồ hay không. Câu trả lời ngắn gọn là không thể, nhưng có một số cách giải quyết bạn có thể thử.

Đầu tiên, bạn có thể dễ dàng làm cho văn bản trong các hộp văn bản hoặc trong nhãn biểu đồ của bạn trở nên động, để nó được gắn với nội dung của một số ô trang tính. Ví dụ, bạn có thể làm như sau cho các hộp văn bản của mình:

  1. Sao chép văn bản của bạn từ mỗi hộp văn bản vào một loạt ô trên trang tính của bạn. (Đối với ví dụ này, giả sử rằng bạn đã sao chép nội dung của mười hộp văn bản vào phạm vi Z1: Z10.)

  2. Chọn hộp văn bản đầu tiên (hộp tương ứng với ô Z1) và loại bỏ nội dung của hộp văn bản.

  3. Với hộp văn bản vẫn được chọn, hãy nhập thông tin sau vào thanh Công thức: = Z1. Khi bạn nhấn Enter, hộp văn bản sẽ phản ánh bất kỳ thứ gì có trong ô Z1.

  4. Lặp lại bước 2 và 3 cho từng hộp văn bản khác của bạn, sử dụng tham chiếu ô thích hợp cho từng ô trong bước 3.

Đó là nó. Bạn có thể sử dụng kỹ thuật tương tự với các nhãn biểu đồ tùy chỉnh — tất cả những gì bạn cần làm là chọn nhãn biểu đồ và nhập tham chiếu ô vào thanh Công thức. Với các hộp văn bản và nhãn biểu đồ được gắn với các ô trang tính, bạn có thể dễ dàng sử dụng Tìm và Thay thế để tìm kiếm và thay đổi thông tin trong các ô. Khi các thay đổi được thực hiện, các hộp văn bản và nhãn biểu đồ sẽ tự động phản ánh những thay đổi trong ô.

Cách duy nhất để thực sự thay đổi văn bản trong hộp văn bản hoặc nhãn biểu đồ là thay đổi nó theo cách thủ công hoặc thay đổi nó bằng cách sử dụng macro. Mã sẽ cần phải đi qua từng hộp văn bản trong trang tính và sau đó thực hiện thay đổi của bạn. Sau đây là một phiên bản đơn giản của macro có thể thực hiện một thay đổi như vậy.

Sub TextBoxReplace()

Dim shp As Shape     Dim sOld As String     Dim sNew As String

'Change as desired     sOld = "Old string"

sNew = "New string"

On Error Resume Next     For Each shp In ActiveSheet.Shapes         With shp.TextFrame.Characters             .Text = Application.WorksheetFunction.Substitute( _               .Text, sOld, sNew)

End With     Next End Sub

Macro này sẽ duyệt qua tất cả các hình dạng trong trang tính (hộp văn bản là hình dạng) và sau đó thay thế bất kỳ hình nào có trong biến sOld bằng bất kỳ hình nào có trong biến sNew. Áp dụng kỹ thuật tương tự cho các nhãn biểu đồ chỉ phức tạp hơn một chút, như thể hiện trong macro sau:

Sub ChartLabelReplace()

Dim Cht As ChartObject     Dim Ser As Series     Dim scPt As Point     Dim sOld As String     Dim sNew As String

'Change as desired     sOld = "Old String"

sNew = "New String"

On Error Resume Next     For Each Cht In ActiveSheet.ChartObjects         For Each Ser In Cht.Chart.SeriesCollection             For Each scPt In Ser.Points                 With scPt.DataLabel                     .Text = Application.WorksheetFunction.Substitute( _                       .Text, sOld, sNew)

End With             Next         Next     Next End Sub

Macro bước qua mỗi nhãn dữ liệu cho mọi chuỗi dữ liệu trên mọi biểu đồ và (một lần nữa) thay thế bất kỳ trường hợp nào của bất kỳ thứ gì trong sOld bằng bất kỳ thứ gì trong sNew.

_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 (9264) á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: