Добавление в ячейку текста различного формата (Microsoft Excel)
Ларри было поручено заменить или добавить текст в каждую ячейку столбца в нескольких книгах Excel. Проблема в том, что этот новый текст должен быть подчеркнут и другого цвета. Функция «Найти и заменить» подчеркивает и раскрашивает весь текст в ячейках, но Ларри нужно, чтобы форматирование применялось только к добавленному тексту.
Если вам нужно выполнить такую задачу всего несколько раз, самым простым решением может быть помощь 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), я подготовил специальную страницу, содержащую полезную информацию.
link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (9302) применим к Microsoft Excel 2007, 2010, 2013, 2016, 2019 и Excel в Office 365.