Добавление текста в другом формате в ячейку

Ларри было поручено заменить или добавить текст в каждую ячейку столбца в нескольких книгах 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 ‘Столбец для работы с lCol = 1’ Текст, который нужно заменить в ячейке ‘Если эта переменная пуста, то в конец добавляется’ содержимое sReplace ‘ ячейки sFind = «» ‘Текст для замены sFind или добавления в ячейку sReplace = «More Text»‘ Найти последнюю строку в столбце A LastRow = Cells (Rows.Count, «A»). End (xlUp) .Row ‘Установить диапазон для проверки Установить FullCells = Range (Cells (1, lCol), Cells (LastRow, lCol))’ Начать просмотр каждой ячейки For Each c In FullCells K = 0 ‘Проверять только, нет ли формулы в ячейке ‘и если в ячейке есть текст If Not c.HasFormula And Len (c.Text)> 0 Then If sFind> «» Then’ Заменить первый найденный экземпляр текста в sFind K = InStr (c.Text, sFind) Если K> 0, то c = Left (c.Text, K — 1) & sReplace & _ Mid (c.Text, K + Len (sFind)) End If Else K = Len (c.Text) ‘Добавить текст в ячейку (плюс пробел) c = c & «» & sReplace ‘Настроить начальную позицию для форматирования K = K + 2 End If End If’ Отформатировать добавленный текст, если он есть, If K> 0 Then With c.Characters (Start: = K, Length: = Len (sReplace)). Font. Underline = xlUnderlineStyleSingle .Color = vbRed End With End If Next cEnd Sub

Для использования макроса необходимо внести три изменения. Во-первых, убедитесь, что для переменной lCol задан номер столбца, на который вы хотите повлиять. Во-вторых, вы должны установить sFind равным тексту, который вы хотите найти и заменить в ячейках. Вы можете, если хотите, оставить sFind пустым (как указано выше), если вы просто хотите добавить текст в ячейку. Наконец, вам нужно установить sReplace равным тому, что вы хотите заменить sFind, или тем, что вы хотите добавить в ячейки.

Макрос просматривает каждую ячейку в указанном столбце и, если ячейка не содержит формулы и в ней уже есть текст, она заменяет или добавляет ваш текст. Наконец, если в ячейку было внесено изменение, то все, что было в sReplace, подчеркивается и становится красным. Обратите внимание, что если в ячейку вносятся изменения, то любое существующее форматирование в ячейке отменяется внесенным изменением.

Источник: frestage.ru

Бытовой вопрос