Larry的任务是在多个Excel工作簿的一列中的每个单元格中替换或添加文本。问题在于,此新文本必须加下划线并使用不同的颜色。查找和替换下划线并为单元格中的所有文本加上颜色,但是Larry需要将格式应用于仅添加的文本。

如果您只需要几次执行此类任务,则最简单的解决方案可能是寻求Microsoft Word的帮助。您可以将单元格区域复制到Word文档,使用Word的“查找和替换”功能进行格式更改,然后将文本复制回Excel工作表。

如果您必须更频繁地执行此任务,那么最好的方法是使用宏。下面的宏可用于更改列单元格中的文本或将文本添加到单元格中。

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

您需要进行三项更改才能使用宏。第一个是确保将lCol变量设置为要影响的列号。其次,应将sFind设置为等于要在单元格中查找和替换的文本。如果您只想向单元格中添加文本,则可以根据需要将sFind空(如上)。

最后,您需要将sReplace设置为等于您要替换sFind或要添加到单元格的值。

宏将遍历指定列中的每个单元格,如果该单元格不包含公式并且其中已经包含一些文本,它将替换或追加您的文本。最后,如果对单元进行了更改,则sReplace中的所有内容都带有下划线并变为红色。您应该注意,如果对单元格进行了更改,则所做的更改将覆盖单元格中的任何现有格式。

注意:

如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(9302)适用于Microsoft Excel 2007、2010、2013、2016、2019和Office 365中的Excel。