我试图统一我收到的一个大型.xlsx文件的格式。如果一个字母与数字相邻,请添加空格
我发现的一个问题是,有“唯一代码”为“00UTract 32”,“132Unit 359”,“5555UT22”的条目......然后我发现我们已经“00 UTract 32“,”单元359,132“和”22UT,5555“。
正如您可能会怀疑的那样,有重复的内容,我确认是这种情况。
那么,每次在数字旁边找到一个字母时,我应该如何添加一个空格,以便我可以轻松地清理垃圾?
谢谢!
我试图统一我收到的一个大型.xlsx文件的格式。如果一个字母与数字相邻,请添加空格
我发现的一个问题是,有“唯一代码”为“00UTract 32”,“132Unit 359”,“5555UT22”的条目......然后我发现我们已经“00 UTract 32“,”单元359,132“和”22UT,5555“。
正如您可能会怀疑的那样,有重复的内容,我确认是这种情况。
那么,每次在数字旁边找到一个字母时,我应该如何添加一个空格,以便我可以轻松地清理垃圾?
谢谢!
假设ID中唯一的区别就是空格,我可能会这样做,反过来。 只需要删除全部空格从那个列,你会得到相同的值,而不必处理检查字符串中的每个字符。
这可以通过CTRL + H来完成,不需要在其中引入VB。
选择要检查/更正并运行此宏小区:
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}
谢谢Gary的学生!您能否请添加一些评论或简要解释我是如何工作的? – Luis 2014-08-31 00:36:10
@ user3849732宏检查逐个单元格。在每个单元中,检查字符。如果程序检测到*字母,*会检查前一个字符。如果前一个字符是*号,*之间放置一个空格。 – 2014-08-31 01:19:42
亚历克斯,我没有试过,但没有工作,因为没有尊重的代码顺序。 在“5555UT22”中,如果我假设我仍然有不同的编码,那么它就是“22UT,5555”。 我想分开每一个,所以我可以应用一些更好的匹配算法,因为它会更容易识别 - 假设我可以做我想问的 - “5555 UT 22”与“22 UT ,5555“比匹配”5555UT22“与”22UT,5555“。 – Luis 2014-08-30 16:12:14