2016-01-14 54 views
0

刪除重複子我有一個名爲「姓名」一欄,其條目要麼從整列Excel的VBA

的行條目,我需要的部分之前。因此,例如 「姓名:{空白} ABC零售商」

,而不是 「ABC零售商」

「AME:{空白} XYZ供應商」,而不是「XYZ供應商「

我只想擺脫這些行條目中的」名稱:「和」ame:「,然後也是左邊的空白。

我到底該怎麼做?

我試着用Replace,出發這樣的:

Sub fix_names() 
    'declare variables 
    Dim arr() As Variant 
    arr = Range("B2:B3781") 

    'count rows 
    noRows = Range("B2:b3781").Rows.Count 

    'begin clean up operation 
    For i = 1 To noRows 
     arr(i) = (Replace(arr(i), "Name:", "")) 
    Next i 

End Sub 

,但無濟於事。我究竟做錯了什麼?我怎樣才能解決這個問題?

+0

一個公式會做它'= TRIM(MID(B2,SEARCH(「:」,B2)+1,LEN(B2)))' –

回答

1

按我的意見一個簡單的公式就能做到:

=TRIM(MID(B2,SEARCH(":",B2) +1, LEN(B2))) 

如果你想在VBA則:

Sub fix_names() 
'declare variables 
Dim i as long 
Dim arr() As Variant 
arr = Range("B2:B3781") 

'begin clean up operation 
For i = LBound(arr, 1) To UBound(arr, 1) 
    arr(i, 1) = Trim(Mid(arr(i, 1), WorksheetFunction.IfError(Application.Find(":", arr(i, 1)), 1) + 1)) 
Next i 
Range("B2:B3781").Value = arr 
End Sub 

的問題是,即使您加載只有一列的數組仍然是二維數組,並且必須按照這種方式處理。

+0

謝謝,公式工作,並且少得多麻煩!我嘗試使用您的VBA代碼,但它給了我一個錯誤: 錯誤的參數數量或無效的屬性分配(錯誤450)。 儘管我並不真正需要它,但我只是爲了練習我的VBA技巧而解決這個問題。如果/當我得到答案時,我會嘗試更多並在此發佈更新。 謝謝! – elbarto

+0

@elbarto什麼行是拋出錯誤? –

+0

crikey,我刪除了代碼/文件,但從內存中它是forloop。 – elbarto