|
|
|
Excel: Проблема при замене точки на запятую через макрос
|
|||
|---|---|---|---|
|
#18+
У меня есть универсальный макрос, превращающий текст в числа (я распознаю 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 и остальные, описанные на форумах, не помогают получить нужный результат :( Бьюсь второй день, уже мозги набекрень, помогите плиз, как корректно макросом удалить точку, чтобы не затронуть запятые!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2009, 11:05:49 |
|
||
|
Excel: Проблема при замене точки на запятую через макрос
|
|||
|---|---|---|---|
|
#18+
Gildaniel, ставить соответствующие(импортируемым данным) разделители до импорта(если импортируете из текстового файла, то прямо при импорте можно указать как понимать разделители), потом импортировать, потом менять обратно. замена, да, не проходит.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2009, 11:37:02 |
|
||
|
Excel: Проблема при замене точки на запятую через макрос
|
|||
|---|---|---|---|
|
#18+
_slan_ В Excel данные попадают из FineReader, это распознанный текст. На уровне FineReader невозможны манипуляции с форматами, для него это все просто символы. FineReader - единственный способ быстро и корректно распознавать табличные данные, сохраненные в pdf. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2009, 12:51:05 |
|
||
|
Excel: Проблема при замене точки на запятую через макрос
|
|||
|---|---|---|---|
|
#18+
ни с чем не спорю.. но все вышесказанное остается в силе.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2009, 13:06:30 |
|
||
|
Excel: Проблема при замене точки на запятую через макрос
|
|||
|---|---|---|---|
|
#18+
GildanielУ меня есть универсальный макрос, превращающий текст в числа (я распознаю pdf-накладные FineReaderом, перекидываю в Эксель, там причесываю макросом и импортирую в ERP). Небольшую часть файла бы, в качестве примера импортируемых данных ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2009, 01:16:04 |
|
||
|
|

start [/forum/topic.php?fid=61&fpage=206&tid=2179907]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
30ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 194ms |
| total: | 290ms |

| 0 / 0 |
