Удалить повторяющуюся подстроку из целого столбца excel-VBA

У меня есть столбец с именем "Имя", чьи записи имеют

предшествующая часть записи строки, которая мне нужна. так например

"Имя: {пустое место} ABC Retailers" вместо "ABC Retailers"

или же

"ame: {пробелы} XYZ Suppliers" вместо "XYZ Suppliers"

Я просто хочу избавиться от "Name:" и "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

но безрезультатно. Что я делаю неправильно? Как я могу это исправить?

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

Проблема в том, что даже если вы загружаете массив только с одним столбцом, он все равно является двумерным массивом и должен рассматриваться как таковой.

Другие вопросы по тегам