2014-08-30 38 views
1

我试图统一我收到的一个大型.xlsx文件的格式。如果一个字母与数字相邻,请添加空格

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

正如您可能会怀疑的那样,有重复的内容,我确认是这种情况。

那么,每次在数字旁边找到一个字母时,我应该如何添加一个空格,以便我可以轻松地清理垃圾?

谢谢!

回答

0

假设ID中唯一的区别就是空格,我可能会这样做,反过来 只需要删除全部空格从那个列,你会得到相同的值,而不必处理检查字符串中的每个字符。

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

+0

亚历克斯,我没有试过,但没有工作,因为没有尊重的代码顺序。 在“5555UT22”中,如果我假设我仍然有不同的编码,那么它就是“22UT,5555”。 我想分开每一个,所以我可以应用一些更好的匹配算法,因为它会更容易识别 - 假设我可以做我想问的 - “5555 UT 22”与“22 UT ,5555“比匹配”5555UT22“与”22UT,5555“。 – Luis 2014-08-30 16:12:14

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} 
+0

谢谢Gary的学生!您能否请添加一些评论或简要解释我是如何工作的? – Luis 2014-08-31 00:36:10

+0

@ user3849732宏检查逐个单元格。在每个单元中,检查字符。如果程序检测到*字母,*会检查前一个字符。如果前一个字符是*号,*之间放置一个空格。 – 2014-08-31 01:19:42

相关问题