Larry đã được giao nhiệm vụ thay thế hoặc thêm văn bản vào từng ô trong một cột trong một số sổ làm việc Excel. Vấn đề là văn bản mới này phải được gạch chân và có màu khác. Tìm và Thay thế gạch dưới và tô màu tất cả văn bản trong ô, nhưng Larry cần định dạng để chỉ áp dụng cho văn bản đã thêm.

Nếu bạn chỉ phải thực hiện loại công việc này một vài lần, giải pháp đơn giản nhất có thể là sử dụng sự trợ giúp của Microsoft Word. Bạn có thể sao chép phạm vi ô vào tài liệu Word, sử dụng khả năng Tìm và Thay thế của Word để thực hiện thay đổi định dạng, sau đó sao chép văn bản trở lại trang tính Excel của bạn.

Nếu bạn phải thực hiện tác vụ này thường xuyên hơn, thì cách tốt nhất là sử dụng macro. Macro sau có thể được sử dụng để thay đổi văn bản trong các ô của cột hoặc để thêm văn bản vào các ô.

Sub AddFormatedText()

Dim K As Long     Dim lCol As Long     Dim LastRow As Long     Dim sFind As String     Dim sReplace As String     Dim FullCells As Range     Dim c As Range

' Column to work on     lCol = 1

' Text to be replaced in the cell     ' If this variable is empty, then     ' the contents of sReplace are added     ' to the end of the cell     sFind = ""



' Text to replace sFind or to add to the cell     sReplace = "More Text"



' Find last row in column A     LastRow = Cells(Rows.Count, "A").End(xlUp).Row

' Set range to check     Set FullCells = Range(Cells(1, lCol), Cells(LastRow, lCol))

' Start looking through each cell     For Each c In FullCells         K = 0         ' Only check if there is not a formula in the cell         ' and if the cell has some text in it         If Not c.HasFormula And Len(c.Text) > 0 Then             If sFind > "" Then                 ' Replace first found instance of text in sFind                 K = InStr(c.Text, sFind)

If K > 0 Then                     c = Left(c.Text, K - 1) & sReplace & _                       Mid(c.Text, K + Len(sFind))

End If             Else                 K = Len(c.Text)

' Add the text to the cell (plus a space)

c = c & " " & sReplace                 ' Adjust starting position for formatting                 K = K + 2             End If         End If

' Format the added text, if any         If K > 0 Then             With c.Characters(Start:=K, Length:=Len(sReplace)).Font                 .Underline = xlUnderlineStyleSingle                 .Color = vbRed             End With         End If     Next c End Sub

Có ba thay đổi bạn cần thực hiện để sử dụng macro. Đầu tiên là đảm bảo biến lCol được đặt thành số cột mà bạn muốn ảnh hưởng. Thứ hai, bạn nên đặt sFind bằng văn bản bạn muốn tìm và thay thế trong các ô. Nếu muốn, bạn có thể để trống sFind (như ở trên) nếu bạn chỉ muốn thêm văn bản vào ô.

Cuối cùng, bạn cần đặt sReplace bằng với những gì bạn muốn thay thế sFind bằng hoặc với những gì bạn muốn thêm vào các ô.

Macro xem qua từng ô trong cột được chỉ định và nếu ô đó không chứa công thức và nó đã có một số văn bản trong đó, nó sẽ thay thế hoặc nối thêm văn bản của bạn. Cuối cùng, nếu một thay đổi được thực hiện đối với ô, thì bất cứ thứ gì trong sReplace sẽ được gạch chân và có màu đỏ. Bạn nên lưu ý rằng nếu một thay đổi được thực hiện đối với ô, thì mọi định dạng hiện có trong ô sẽ bị ghi đè bởi thay đổi đang được thực hiện.

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