我試圖統一我收到的一個大型.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