如果字母与数字相邻,请添加空格

时间:2014-08-30 15:58:24

标签: excel excel-vba vba

我正在尝试统一我收到的大型.xlsx文件的格式。

我发现的一个问题是,有一些条目“唯一代码”是“00UTract 32”,“132Unit 359”,“5555UT22”...然后我发现我们已经“00 UTract 32 “,”单位359,132“和”22UT,5555“。

你可能怀疑,有重复,我确认是这种情况。

那么,每当我在一个数字旁边找到一个字母时,我该如何添加一个空格,这样我就可以轻松地开始清理这个混乱了?

谢谢!

2 个答案:

答案 0 :(得分:1)

选择您要检查/更正的单元格并运行此宏:

Sub DataFixer()
    Dim r As Range, DoIt As Boolean
    Dim temp As String, CH As String, v As String
    Dim i As Long, L As Long
    For Each r In Selection
        temp = ""
        DoIt = False
        v = r.Value
        L = Len(v)
        CH = Mid(v, 1, 1)
        temp = CH
        For i = 2 To L
            CH = Mid(v, i, 1)
            If IsNumeric(Right(temp, 1)) And CH Like "[a-zA-Z]" Then
                DoIt = True
                temp = temp & " "
            End If
            temp = temp & CH
        Next i
        If DoIt Then r.Value = temp
    Next r
End Sub

宏检查每个选择单元格是否出现:

{number}{letter}

并将其替换为:

{number} {letter}

答案 1 :(得分:0)

我可能会以相反的方式执行此操作假设ID中唯一的区别是空格。 只需删除该列中的所有空格,即可获得相同的值,而无需检查字符串中的每个字符。

这可以通过CTRL + H完成,无需在其中引入VB。