13.04.2004, 10:34 | #1 |
Участник
|
Формирование форм внешней отчетности (например, баланс):
Данные из MBS Navision выгружаются в EXCEL, но похоже выгрузка происходит по одному символу в текстовом формате, включая и пробел, разделяющий группу из 3-х цифр. В дальнейшем EXCEL это значение не воспринимает как число. Выгрузка идет в ячейки с форматом "общий". Работать с данными, как с числами, возможно только после ручного удаления межгрупповых разделителей. Как исправить такую ситуацию? |
|
13.04.2004, 13:33 | #2 |
Шаман форума
|
Написать макрос в Екселе
__________________
All information in this post is strictly confidential. If you have read it in error, please forget it immediately. |
|
13.04.2004, 15:51 | #3 |
Moderator
|
Лучше сразу указать FORMAT(Var,0,1) и устанавливать NumberFormat для ячейки. Но для этого надо в коде поковыряться. Я вот сейчас как раз с такое дрянью разбирался. Можно в ExcelBuffer вставить проверку на число и соответственно устанавливать нужный формат.
|
|
13.04.2004, 17:04 | #4 |
Участник
|
что вы опять программируете?
может я что не понимаю? по-моему отлично помогает подстройка региональных установок. В виндах достаточно разделитель между дробной и целой частью сделать точкой, а разделитель между триадами - запятую. И все программы работают без запинки. |
|
13.04.2004, 18:02 | #5 |
Участник
|
Уважаемые Коллеги! Спасибо за Ваше участие.
Оказалось, что в региональных настойках Windows: "Язык и региональные стандарты", "Настройка региональных параметров", "Числа", "Разделитель групп разрядов" необходимо явно задать "пробел". Значение "Разделителя групп разрядов", принятое "по умолчанию", вносит ошибку в формирование внешней отчетной формы в Excel. |
|
15.04.2004, 11:43 | #6 |
Moderator
|
Кстати, в ВИН2000 нихрена это не работает. Сколько не снимай разделитель разрядов в национальных установках - всеравно в ексель с разделителями пихает.
|
|
15.04.2004, 11:45 | #7 |
Шаман форума
|
А если выгружать в ячейки с форматом "число"?
__________________
All information in this post is strictly confidential. If you have read it in error, please forget it immediately. |
|
15.04.2004, 11:47 | #8 |
Участник
|
Цитата:
Сообщение от Dzemon
Кстати, в ВИН2000 нихрена это не работает. Сколько не снимай разделитель разрядов в национальных установках - всеравно в ексель с разделителями пихает.
всю жизнь работало.... как бы проверить? |
|
15.04.2004, 14:03 | #9 |
Moderator
|
Цитата:
Сообщение от komar
А если выгружать в ячейки с форматом "число"?
А некоторые, шутки ради, турецкий язык ставят....... |
|
15.04.2004, 14:07 | #10 |
Участник
|
Цитата:
Сообщение от Dzemon
...При работе с разными системами через текстовые файлы возникает проблема с разными разделителями разрядов: точка или запятая...
|
|
15.04.2004, 18:06 | #11 |
Участник
|
Исследование выгруженного EXL файла показало, что при исходных региональных настройках в таблице EXL вместо символа ПРОБЕЛ (20h) лежит a0h.
После изменения ручками региональных настроек и повторной выгрузки Формы 1 из Navisin в EXL все работает. Проверялось на Windows 2000 Server RU Sp4 и локально на Win XP Prof RU Sp1. Все нормально отработало. |
|
18.05.2005, 11:54 | #12 |
Moderator
|
Цитата:
Сообщение от Dzemon
Кстати, в ВИН2000 нихрена это не работает. Сколько не снимай разделитель разрядов в национальных установках - всеравно в ексель с разделителями пихает.
1. Сначало выгружаю отчет из Excel, как есть, с раздлителем "пробел" между тридами, 2. потом копирую символ этого разделитля в буфер (Ctrl+C), выглядит, как будто копируешь пробел 3. потом вставляешь это символ из буфера в нужное поле региональных настроек. Мне обычно помогает... :P |
|
18.05.2005, 18:41 | #13 |
Участник
|
Это очень смышленый юзер должен быть, чтобы такую последовательность действий запомнить. Такого нынче днем с огнем не найдешь. Как-то я это дело обходил - надо код глянуть.
А вот когда через буфер таблицу в ёксель копируешь - (CRTL-Ins + SHIFT-ins) - тут так и не придумал, как разные региональные настройки обходить. |
|
18.05.2005, 19:33 | #14 |
Участник
|
Так же как GALA написала! (Или написал )
|
|
30.05.2005, 17:26 | #15 |
Moderator
|
Цитата:
Сообщение от konrad
Это очень смышленый юзер должен быть, чтобы такую последовательность действий запомнить. Такого нынче днем с огнем не найдешь. Как-то я это дело обходил - надо код глянуть.
А вот когда через буфер таблицу в ёксель копируешь - (CRTL-Ins + SHIFT-ins) - тут так и не придумал, как разные региональные настройки обходить. А смышленный юзер тут не причем. Все можно сделать один раз минут за 5, за чашечкой чая.... |
|
15.06.2005, 09:56 | #16 |
Участник
|
Цитата:
Сообщение от konrad
Это очень смышленый юзер должен быть, чтобы такую последовательность действий запомнить. Такого нынче днем с огнем не найдешь. Как-то я это дело обходил - надо код глянуть.
А вот когда через буфер таблицу в ёксель копируешь - (CRTL-Ins + SHIFT-ins) - тут так и не придумал, как разные региональные настройки обходить. Вставив в ексель, копируешь в каком-нибуть поле этот самый разделитель и делаешь замену по всему листу. (вставка значения в запросе замены только через Cntrl+V). Изхза досовской бухгалтерии нельзя было менять настройки, но народ освоил и во всю пользует методу. |
|
15.06.2005, 17:13 | #17 |
Участник
|
С запятыми или точками в качестве разделителя разрядов - некрасиво выглядит...
Код: NumberFormat := '# ##0,00' |
|
15.06.2005, 18:14 | #18 |
Moderator
|
Цитата:
Сообщение от TERRA
С запятыми или точками в качестве разделителя разрядов - некрасиво выглядит...
Код: NumberFormat := '# ##0,00' |
|
16.06.2005, 09:48 | #19 |
Участник
|
Это только для случая, если в качестве разделителя групп разрядов указан пробел. Любой другой символ (точка, запятая) передается в эксель корректно - на выходе получаем числовой формат ячейки. Проблемы я встречала только с пробелом. И с пробелом такой код вполне спасает.
|
|
16.06.2005, 11:22 | #20 |
Участник
|
Я наверно чтото не понимаю, но по моему уже все это обсуждалось. И все ответы даны.
При експорте в excel разделители пробелы |
|