Страницы: 1
RSS
Сохранение в CSV (разделители-запятые) макросом
 
Люди добрые перерыл всё, но так и не нашел ответа на свой вопрос. Проблема в том, что при сохранении вручную в формат CSV файла в котором есть предположим 2 столбца с данными, файл так и остаётся разбитым по столбцам (как и требуется мне). Но при сохранении этого же файла в CSV с помощью макроса, все столбцы объеденяются в 1 с разделителем запятая, что мне совершенно не нужно!!! Вот и вопрос заключается в том, как сохранить файл макросом, именно в таком же виде как и ручками!!!???  
Сохранение происходит так:  
 
ActiveWorkbook.SaveAs Filename:= _  
       "H:\Test\ " & Range("D1").Value & ".csv", _  
       FileFormat:=xlCSV, CreateBackup:=False
 
Попробуйте такой вариант:  
 
Sub SaveCopyAs_()  
   With Workbooks.Add  
       ThisWorkbook.Activate  
       ActiveSheet.Copy Before:=.Sheets(1)  
       .SaveAs Filename:=ThisWorkbook.Path & "\Export " & Date & ".csv" _  
       , FileFormat:=xlCSV, CreateBackup:=False  
   End With  
   Application.SendKeys "^w~~~"  
End Sub
Киса, я хочу Вас спросить, как художник — художника: Вы рисовать умеете?
 
Может это покажется странным, но сохраняется пустой файл...
 
Выложите файл
Киса, я хочу Вас спросить, как художник — художника: Вы рисовать умеете?
 
Мля, задолбали кроссеры! Ответил здесь:  
http://www.programmersforum.ru/showthread.php?t=209824  
И удалил.
Я сам - дурнее всякого примера! ...
 
Уупс...!!! Прошу прощения, но как я понял макрос работает только если он находится в книге с которой работаешь. Но дело в том, что данная операция должна проходить с вновь созданными файлами из Личной книги макросов.
 
{quote}{login=KukLP}{date=18.08.2012 09:50}{thema=}{post}...задолбали кроссеры!{/post}{/quote}  
Я конечно прошу прощения, но я торопился, и что бы наверняка... )
 
Попробуйте  
FileFormat:=xlCSVMSDOS  
У меня сохраняет с разделителями ";"
 
Уважаемый Hugo, дело в том что мне разделители как раз и не нужны!!!  
 
LightZ  
Ваш макрос работает, но проблема в том, что у меня есть определённый файл из которого я копирую нужные мне данные в новый файл и сохраняю в *.csv , а ваш макрос работает только если он находится в сохраняемой книге.
 
{quote}{login=bibir}{date=18.08.2012 10:13}{thema=}{post}Уважаемый Hugo, дело в том что мне разделители как раз и не нужны!!!  
{/post}{/quote}  
 
CSV (от англ. Comma-Separated Values — значения, разделённые запятыми) — текстовый формат, предназначенный для представления табличных данных. Каждая строка файла — это одна строка таблицы. Значения отдельных колонок разделяются разделительным символом (delimiter) — запятой (,). Однако, большинство программ вольно трактует стандарт CSV и допускают использование иных символов в качестве разделителя. В частности в локалях, где десятичным разделителем является запятая, в качестве табличного разделителя, как правило, используется точка с запятой.  
 
http://ru.wikipedia.org/wiki/CSV
 
У Вас хромают азы - csv это по сути текстовый файл.  
Вы свои файлы примера попробуйте открыть блокнотом - вся разница только в разделителях.
 
Уважаемый, я же не зря писал про сохранение в *.csv вручную. Попробуйте создать новый файл в Excel и добавить туда данные, после чего сохранить его в *.csv.    
Откройте файл и Вы увидите, что никаких разделителей Excel Вам не покажет и всё будет так же разбито по столбцам.Но при сохранении макросом всё встаёт в первый столбец с разделителем.  
Я понимаю и знаю, что разделитель есть и при сохранении вручную, но именно вариант, что всё остаётся на своих местах меня интересует!
 
Повторюсь - вся разница в показанных Вами файлах в разделителях. Т.е. они есть в обоих файлах.  
И вообще-то Вам бы нужно выяснить, какие разделители Вам нужны - т.к. то, как с этими файлами обращается Ваш конкретный Эксель, может быть совершенно не важно.  
Скажите, для чего вы сохраняете именно в csv? Почему не в xls? Что будет далее с этими файлами?
 
{quote}{login=bibir}{date=18.08.2012 10:13}{thema=}{post}Уважаемый Hugo, дело в а ваш макрос работает только если он находится в сохраняемой книге.{/post}{/quote} Пробовали его переделать под свои нужды?
Киса, я хочу Вас спросить, как художник — художника: Вы рисовать умеете?
 
Разделители я ставил и ; и сохранение всё равно шло в 1 столбец.  
Поясняю в первом столбце находится штрихкод, во втором количество.  
В программе 1С этот файл открывается определённой обработкой в которой указывается что и в каком столбце находится.После чего она на основании предоставленных данных создаёт заказ. Вот и всё.Но работает она только с *.csv файлами - это я уже не знаю почему :)  
 
KukLP  
Application.SendKeys "^w~~~"  
подставил это в свой макрос и вроде бы всё работает! Жаль не могу проверить результат в 1С , но вроде бы всё должно сработать.  
Огромное спасибо Вам!!!
 
Прошу прщения ))))  
LightZ Вам Огромное Спасибо!!! )))) Попутался )
 
Та не за что ;)
Киса, я хочу Вас спросить, как художник — художника: Вы рисовать умеете?
 
Да нет :) Ещё как есть за что!!! Часто приходиться огромное количество времени тратить на это, руки и глаза болеть начинают через час нудной работы этой ))) Но теперь благодоря Вам ... ))) Ещё раз Спасибо!!! :)
Страницы: 1
Читают тему
Loading...