Страницы: 1
RSS
Удалить разделители .csv при сборе данных через VBA, Удалить разделители .csv при сборе данных через VBA
 
Добрый день. Возникла необходимость пользоваться источником данных, который по дефолту выгружается в формате .csv с разделителями ";" вместо привычных столбцов. При ручном открытии такого файла разделители видимо автоматически превращаются в столбцы и данные превращаются в удобную таблицу. Но при сборе(копировании) этих данных, при чем из нескольких файлов, через VBA по средствам самого распространенного макроса автоматизация такая не работает и на выходе я получаю не удобную собранную таблицу, а столбец, в строках которого зашиты данные с разделителями.
Перечитал много тем, связанных с переформатированием .csv в .xls, но применить их решения никак не получилось((( Я решения понял так, но реализовать его не получилось:
нужно строку Workbooks.Open CSVfilename, local:=True
изменить и как то применить либо в части кода, где идет выбор файлов: avFiles = Application.GetOpenFilename("Excel files(*.csv*),*.csv*", , "Выбор файлов", , True)
Либо уже в части копирования данных, через цикл.
Файл для сбора "Макрос" и файлы как источник данных прилагаю. Может быть у здешних гуру есть идеи решения такой пустяковой проблемы?
Не перестаю удивляться возможностям excel и VBA.
 
М-да...Где только свои коды не встретишь...
Вот в этой строке надо вносить изменения:
Код
Set wbAct = Workbooks.Open(Filename:=avFiles(li))
только правильнее использовать OpenText, а не просто Open(он больше именно для типа Workbook все же):
Код
Set wbAct = Workbooks.OpenText(Filename:=avFiles(li), Local:=True)
если такой метод не прокатит, то попробуйте задать разделитель явно:
Код
Set wbAct = Workbooks.OpenText(Filename:=avFiles(li), Other:=True,OtherChar:=";")
Изменено: Дмитрий Щербаков - 06.04.2018 11:01:36
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Дмитрий, в таком случае большое спасибо за исходник. Уверен - очень многим пользователям он пригодился.
А также на счет решения - первый метод сработал(в чем я очень благодарен), но только без приставки "Text", ибо с ней макрос не срабатывает и сразу ссылается на ошибку "Compile error: Expected Function or variable", т..е. сработал так:
Код
Set wbAct = Workbooks.Open(Filename:=avFiles(li), Local:=True)
Не перестаю удивляться возможностям excel и VBA.
 
Цитата
Владимир Шаматонов написал:
сразу ссылается на ошибку
точно, вылетело из головы. Там же на выходе не Workbook получается. OpenText только открывает, но ничего не возвращает.
Изменено: Дмитрий Щербаков - 06.04.2018 11:56:41
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Страницы: 1
Наверх