Страницы: 1
RSS
Замена значений через VBA
 
Всем привет! В одном из столбцов таблицы записаны числа формата "800.00; 1000.63; 123.45;0;.... То есть их десятичная часть отделена точкой. Мне нужно заменить эту точку на запятую.
Сейчас использую следующий код:

Пока что получается, что после замены точки на запятую, получаю следующий столбец: "800;100063; 123,45;0,00;...    Запятая видна только у нуля. Что может быть не так?
Код
Range("T1:T" & iLastRow).NumberFormat = "@"
    Columns("T:T").Select
    Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
   
 
скажите, а ЗАЧЕМ вы хотите это сделать?
чтобы числа превратить в текст? или чтобы текст превратить в числа?
 
Игорь,чтобы текст превратить в числа  
 
вот это зачем тогда??
Range("T1:T" & iLastRow).NumberFormat = "@"

зачем назначать ячейкам текстовый формат, если хотите числа получить?

Цитата
Запятая видна только у нуля
возможно, там что-то в ячейке есть кроме цифр - например, пробел

вот весь макрос:
Код
Sub test()
    Columns("T:T").Replace What:=".", Replacement:=",", LookAt:=xlPart
End Sub
 
Игорь,  почему то все равно игнорирует все кроме нулей. Прикладываю файл с этими числами.
 
Если в одной ячейке числа записаны так: "800.00; 1000.63; 123.45;0;...." - то никак Вы их в числа не превратите. :)
Я сам - дурнее всякого примера! ...
 
Если все же точкой с запятой отделяются значения в разных ячейках, то макросом это делается предельно просто:
Код
rng = rng.value

где rng - объект Range
С уважением,
Федор/Все_просто
 
Когда писал свой ответ, примера еще не было. Попробуйте:
Код
Sub StrToNum(): [a:a].Replace ".", ".", 2: End Sub
Я сам - дурнее всякого примера! ...
 
Большое спасибо!
Страницы: 1
Читают тему
Наверх