2015-09-28 3 views
0

Я использую следующий код, чтобы заменить запятую запятой в диапазоне, но она удаляет только двоеточие, она не помещает запятую на свое место. Я не мог найти никаких вопросов, касающихся этого вопроса в любом месте, поэтому я размещаю здесь вопрос.Заменить запятую запятой

Range("AU2:AU250").Select 
    Selection.Replace What:=";", Replacement:=",", LookAt:=xlPart, _ 
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ 
    ReplaceFormat:=False 
+0

Какие данные находятся в ячейках, где вы заменяете точки с запятой? – Rory

+0

Это данные в CSV-файле. В конкретном диапазоне я работаю с номерами, импортированными в виде текста. Полуколоны находятся между группой чисел, и мне нужно их заменить запятыми. – Tom

+0

Если вы имеете в виду как разделители тысяч, это должно быть сделано путем форматирования, а не как часть значения ячейки. – Rory

ответ

1

Попробуйте это ...

Sub Comma() 
    Dim R As Range, C As Range 

    Set R = Range([AU2], [AU250]) 

    For Each C In R.Cells 
     C = Replace(C, ";", ",") 
    Next C 

End Sub 

Это ИМХО более VBA, как использование подхода создания объектов диапазона, а не имитируя материал Excel, который вы будете использовать при взаимодействии непосредственно с листа

+0

Это также намного более неэффективно. – Rory

+0

Этот код работал отлично. Благодаря! – Tom

0

Можете ли вы скопировать некоторые из повреждающих ячеек из диапазона CSV в файл csv? Откройте его в текстовом поле, хотя и не в excel.

Кроме того, какую версию Excel вы используете? Мне не удалось это сделать либо в 2003 году, либо в 2010 году.

И я предполагаю, что вам нужно сделать это более одного раза, поэтому вы делаете макрос или обнаруживаете/заменяете сбой, и вы отправляете макрокоманду чтобы получить помощь в этом тоже? :-)

+0

Я использую 2013. Приведенный выше код действительно решил мою проблему. – Tom