2014-08-30 78 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

相關問題