Excel 2013 需要 VBA 脚本

Excel 2013 需要 VBA 脚本

我有几个单元格包含一串文本,这些文本部分为粗体,部分为非粗体。我需要删除单元格中文本的粗体部分

例子:

Excel图像

lname1,fname1[电子邮件保护]

lname2,fname2[电子邮件保护]

lname3,fname3[电子邮件保护]

我想删除粗体“lname,fname”并只保留单元格中的电子邮件地址。

答案1

前:

在此处输入图片描述

代码:

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

之后:

在此处输入图片描述

编辑#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

前:

在此处输入图片描述

之后:

在此处输入图片描述

相关内容