Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Excel: Проблема при замене точки на запятую через макрос / 5 сообщений из 5, страница 1 из 1
16.01.2009, 11:05:49
    #35760914
Gildaniel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel: Проблема при замене точки на запятую через макрос
У меня есть универсальный макрос, превращающий текст в числа (я распознаю pdf-накладные FineReaderом, перекидываю в Эксель, там причесываю макросом и импортирую в ERP).
*************************

'Убираем лишниие пробелы и символы
Selection.Replace What:=" ", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:="_", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
'Меняем разделитель разрядов на понятный val'у
Selection.Replace What:=",", Replacement:=".", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False

' Кусок для работы с отрицательными числами похерен

' Гарантированно преобразуем текст в числа
For Each xCell In Selection
If xCell.Value <> "" Then xCell.Value = Val(xCell.Value)
Next xCell
Selection.NumberFormat = "#,##0.00"
*************************
Все работало отлично, пока не столкнулся с хитрыми накладными: В накладной используется в качестве разделителей разрядов запятая, разделителей тысяч - точка. Могут быть следующие варианты:
1,35 (должно получится 1,35)
2.157 (должно получится 2157,00)
1.136,16 (должно получится 1136,16)

Добавил в начало макроса удаление точек
Selection.Replace What:=".", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False

И началось. Оказалось, что у VBA известные проблемы с заменой точек на запятую, т.е. через поиск и замену точки удаляются корректно, но когда через макрос - удаляются также и запятые.

Танцы с бубном и хитрости на тему замены точки на точку, использования Application.DecimalSeparator и остальные, описанные на форумах, не помогают получить нужный результат :(

Бьюсь второй день, уже мозги набекрень, помогите плиз, как корректно макросом удалить точку, чтобы не затронуть запятые!!!
...
Рейтинг: 0 / 0
16.01.2009, 11:37:02
    #35761028
_slan_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel: Проблема при замене точки на запятую через макрос
Gildaniel,
ставить соответствующие(импортируемым данным) разделители до импорта(если импортируете из текстового файла, то прямо при импорте можно указать как понимать разделители), потом импортировать, потом менять обратно. замена, да, не проходит..
...
Рейтинг: 0 / 0
16.01.2009, 12:51:05
    #35761251
Gildaniel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel: Проблема при замене точки на запятую через макрос
_slan_

В Excel данные попадают из FineReader, это распознанный текст. На уровне FineReader невозможны манипуляции с форматами, для него это все просто символы.
FineReader - единственный способ быстро и корректно распознавать табличные данные, сохраненные в pdf.
...
Рейтинг: 0 / 0
16.01.2009, 13:06:30
    #35761299
_slan_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel: Проблема при замене точки на запятую через макрос
ни с чем не спорю..

но все вышесказанное остается в силе..
...
Рейтинг: 0 / 0
19.01.2009, 01:16:04
    #35763737
SirFisher
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel: Проблема при замене точки на запятую через макрос
GildanielУ меня есть универсальный макрос, превращающий текст в числа (я распознаю pdf-накладные FineReaderом, перекидываю в Эксель, там причесываю макросом и импортирую в ERP).


Небольшую часть файла бы, в качестве примера импортируемых данных
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Excel: Проблема при замене точки на запятую через макрос / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]