-1

У меня есть несколько ячеек, которые имеют строку текста, которые частично выделены жирным шрифтом и частично NotBold. Мне нужно удалить выделенную часть текста в ячейках

Пример:

ExcelImage

lname1, fname1 email1@email.com

lname2, fname2 email2@email.com

lname3, fname3 email3@email.com

Я хотел бы удалить жирный "lname, fname" и просто сохранить адрес электронной почты в ячейке.

1 ответ1

3

До:

Код:

Sub BoldKiller()
    Dim L As Long, r As Range, t As String, i As Long

    For Each r In Intersect(ActiveSheet.UsedRange, Selection)
        t = r.Text
        If t <> "" Then
            L = Len(t)
            For i = L To 1 Step -1
                If r.Characters(i, 1).Font.Bold = True Then
                    r.Characters(i, 1).Delete
                End If
            Next i
        End If
    Next r
End Sub

и после:

EDIT # 1:

Этот макрос извлекает жирные символы и помещает их в соседний столбец:

Sub BoldKiller2()
    Dim L As Long, r As Range, t As String, i As Long
    Dim rr As Range

    For Each r In Intersect(ActiveSheet.UsedRange, Selection)
        t = r.Text
        If t <> "" Then
            Set rr = r.Offset(0, 1)
            rr.Font.Bold = True
            L = Len(t)
            For i = L To 1 Step -1
                If r.Characters(i, 1).Font.Bold = True Then
                    rr.Value = r.Characters(i, 1).Text & rr.Value
                    r.Characters(i, 1).Delete
                End If
            Next i
        End If
    Next r
End Sub

До:

и после:

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .