-=Serj=- пишет:moshell пишет:в общем пора начинать курить VBA
За это можно не то что тапочком - валенком стоит огреть 
предлагаете пересадить начальство на линухс?
-=Serj=- пишет:moshell пишет:то есть половина данных теряется во время преобразования из экселя в csv.
Попробуйте преобразовывать в LO или OO.
не совсем понимаю о чем речь?
Но если файл уже изначально из маздая приходит битым, как с ним в линуксе работать?
#####################################
#####################################
выход следующий:
1) макрос убивает невидимые символы в экселе
Workbooks(Workbooks.Count).Worksheets(2).Range("A1:J250") = Application.Clean(Workbooks(Workbooks.Count).Worksheets(2).Range("A1:J250"))
2) переносим в линукс через "общую папочку"
3) далее
gu@moshell:~$ enca file.csv
MS-Windows code page 1251
gu@moshell:~$ recode -l | grep 1251
CP1251/CR-LF 1251/CR-LF ms-cyrl windows-1251
gu@moshell:~$ recode windows-1251 file.csv
gu@moshell:~$ enca file.csv
Universal transformation format 8 bits; UTF-8
CRLF line terminators
перекодирует хорошо, но разрыв строк сами видите какие.
для этого
gu@moshell:~$ dos2unix -n file.csv newfile
dos2unix: converting file file.csv to file newfile in Unix format ...
gu@moshell:~$ enca newfile
Universal transformation format 8 bits; UTF-8
Все хорошо, все ОК, но куча манипуляций.
к сожалению не нашел в recode ключика для изменения разрыва строк (такого как в dos2unix)
можно было бы в одной команде dos2unix все делать, но
Convert from Windows CP1252 to Unix UTF-8 (Unicode)
iconv -f CP1252 -t UTF-8 in.txt | dos2unix > out.txt
перекодирует в крокозябры, не знаю, может потому что тут 1252 а не 1251, в кодировках не силен.
можно ли как то упростить сиё творение?
"Фирма Майкрософт не собирается поддерживать протокол TCP/IP в своих OS" 1993 (c) Билл Гейтс
"Мы изобрели новый протокол передачи данных, мы назвали его TCP/IP" 1995 (c) Билл Гейтс