Страницы: 1
RSS
Заменить запятую на точку макросом
 
Добрый день, коллеги.
Сталкнулся со странной проблемой. Прописываю в макросе замену запятой на точку, но ничего не происходит. Если в кавычках заменить запятую на число то замена происходит, то есть число макрос видит а запятую нет. Не могу понять в чем дело. Прошу помощи.
Перерыл этот форум так же другие, не нашел ответа на мою проблему.
 
Так в ячейке число, а не строка. Может вначале, если число, то перевести в строку, а после делать замену?

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
думаю Вы имели ввиду перевести в String?  Перевожу в текст, переводится, но при отрабатывании сточки по замене, вместо точек все равно выходят запятые. И в ячейке текст переводится в число обратно. Я так понимаю что ВБА делает замену запятой на точку, а сам Ексель переводит назад (ведь разделитель между целой и дробной частью запятая).
Буду думать дальше, искать на просторах интернета, как это побороть...
Спасибо за отклик.
 
Код
Sub alexthegreat()
Dim c As Range
    Selection.NumberFormat = "@"
    For Each c In Selection
    c.Value = Replace(c, ",", ".")
    Next
End Sub
Изменено: Михаил С. - 23.07.2014 09:01:51
 
Михаил, спасибо большое. Это гениально!
 
Цитата
alexthegreat: Я так понимаю что ВБА делает замену запятой на точку, а сам Ексель переводит назад. Буду думать дальше, искать ...
alexthegreat я вот не знаю почему у вас так и что посоветовать вам искать дальше - потому что у меня ваш код сработал как надо - и в одном направлении (запятую на точку) и в другом (когда так же точку на запятую) для вашего примера... у меня системные настройки "." как разделитель целой и дробной, xl - вроде бы то же (с ходу не нашла где проверить)... имхо... может у вас в xl какие параметры автозамены в правописании или что-нибудь ещё... думаю, дело в xl, а не в вашем макросе...
Изменено: JeyCi - 23.07.2014 09:11:26
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
Цитата
JeyCi пишет: у меня системные настройки "." как разделитель целой и дробной,
В этом все дело. Поэтому у вас и работает что в одну, что в другую сторону.
 
Тоже столкнулась с такой проблемой, пробовала несколько вариантов, но ни один не получился((
Из системы данные выгружаютя в "корявом" виде, и их никак не преобразовать  макросом в общий формат. У меня почему-то все преобразовывается в текстовый формат и всё....(((  Подскажите, пожалуйста, в чем ошибка в моем макросе.
 
Ula, здравия. Пробуйте.
Код
Sub jjj()
    For Each cl In Range(Cells(5, 9), Cells(4, 9).End(xlDown))
        If IsNumeric(cl.Value) Then cl.Value = CDbl(cl.Value)
    Next cl
End Sub

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Спасибо за отклик) но у меня это тоже не сработало(
В итоге решили проблему перенастройкой самой складской системы, теперь все выгружается в нужном виде.
Страницы: 1
Наверх