2016-01-14 3 views
0

У меня есть столбец с именем «Name», элементы которой имеют либоУдалить повторяющиеся подстроки из целой колонки первенствовать-VBA

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

"Имя: {пробел} ABC розничной торговли" вместо "ABC розничной торговли"

или

"AME: {Пробелы} XYZ Поставщики" вместо «XYZ Поставщики "

Я просто хочу избавиться от этих имен строк и« ами »: а затем пробелы слева.

Как я мог это сделать?

Я попытался с помощью 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

Смежные вопросы