Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Корректно открыть через VBA файл формата csv в Excel - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Manyasha, SLAVICK, китин  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Корректно открыть через VBA файл формата csv в Excel (Макросы/Sub)
Корректно открыть через VBA файл формата csv в Excel
master-dd Дата: Воскресенье, 03.06.2018, 22:04 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 61
Репутация: 0 ±
Замечаний: 0% ±

2016
Уважаемое сообщество, доброго времени суток.

Опять недостаток знаний вынудил меня обратиться к вам за советом. Итак, в чём суть проблемы:

Имеется файл формата csv, данные из которого подлежат дальнейшему анализу в Excel. Этот файл открывается автоматически, когда запускается соответствующий макрос и вроде бы всё работает дальше, но писал я код открытия и конвертации данного файла только с помощью уже имеющихся у меня знаний. И вот, ожидаемо, вчера обнаружил, что не все данные отображаются корректно. Во вложении 2 файла: *.xlsm (в котором и находится та часть кода, которую я "наваял") и файл *.сsv (для примера).
Заранее прошу не смеяться над моим "решением" данной задачи, и прошу подсказать, как это нужно делать корректно.

P.S. Я день потратил на чтение разнообразных ответов на данный вопрос на разных форумах и в интернете, но, к сожалению, так и не решил эту задачу.
Заранее спасибо.
К сообщению приложен файл: 0147196.xlsm(63.0 Kb) · 9288364.csv(2.7 Kb)
 
Ответить
СообщениеУважаемое сообщество, доброго времени суток.

Опять недостаток знаний вынудил меня обратиться к вам за советом. Итак, в чём суть проблемы:

Имеется файл формата csv, данные из которого подлежат дальнейшему анализу в Excel. Этот файл открывается автоматически, когда запускается соответствующий макрос и вроде бы всё работает дальше, но писал я код открытия и конвертации данного файла только с помощью уже имеющихся у меня знаний. И вот, ожидаемо, вчера обнаружил, что не все данные отображаются корректно. Во вложении 2 файла: *.xlsm (в котором и находится та часть кода, которую я "наваял") и файл *.сsv (для примера).
Заранее прошу не смеяться над моим "решением" данной задачи, и прошу подсказать, как это нужно делать корректно.

P.S. Я день потратил на чтение разнообразных ответов на данный вопрос на разных форумах и в интернете, но, к сожалению, так и не решил эту задачу.
Заранее спасибо.

Автор - master-dd
Дата добавления - 03.06.2018 в 22:04
_Boroda_ Дата: Воскресенье, 03.06.2018, 22:45 | Сообщение № 2
Группа: Модераторы
Ранг: Местный житель
Сообщений: 13187
Репутация: 5422 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
У Вас кодировка шалит.
Посмотрите вот здесь готовая функция для этого
http://excelvba.ru/code/Encode


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеУ Вас кодировка шалит.
Посмотрите вот здесь готовая функция для этого
http://excelvba.ru/code/Encode

Автор - _Boroda_
Дата добавления - 03.06.2018 в 22:45
doober Дата: Воскресенье, 03.06.2018, 23:47 | Сообщение № 3
Группа: Друзья
Ранг: Обитатель
Сообщений: 496
Репутация: 229 ±
Замечаний: 0% ±

Excel 2007
Измените путь на свой к папке
К сообщению приложен файл: 4829996.xlsm(67.7 Kb)


 
Ответить
СообщениеИзмените путь на свой к папке

Автор - doober
Дата добавления - 03.06.2018 в 23:47
master-dd Дата: Понедельник, 04.06.2018, 14:36 | Сообщение № 4
Группа: Пользователи
Ранг: Участник
Сообщений: 61
Репутация: 0 ±
Замечаний: 0% ±

2016
_Boroda_, doober, спасибо за советы, НО вопрос так и не решён. Я попробовал все доступные кодировки (благодаря статьям, вами рекомендованным), но всё равно при получении данных из csv есть ошибка. Привожу конкретный пример.

Во вложении файл csv. Если его открыть с помощью Excel, то в ячейке B2 мы видим текст, который начинается так: "Shower Head,12 Inch ...". Но открывая его силами VBA вот эта самая запятая исчезает и текст сливается: "Shower Head12 Inch". И вот из-за таких ошибок дальнейшая обработка данных становится нецелесообразной из-за некорректности текстовой информации - текст должен сохранить свой первозданный вид, т.е. такой, который мы видим открывая файл через Excel.

Буду благодарен, если вы поможете разобраться в этой проблеме.
К сообщению приложен файл: _2.csv(0.5 Kb)
 
Ответить
Сообщение_Boroda_, doober, спасибо за советы, НО вопрос так и не решён. Я попробовал все доступные кодировки (благодаря статьям, вами рекомендованным), но всё равно при получении данных из csv есть ошибка. Привожу конкретный пример.

Во вложении файл csv. Если его открыть с помощью Excel, то в ячейке B2 мы видим текст, который начинается так: "Shower Head,12 Inch ...". Но открывая его силами VBA вот эта самая запятая исчезает и текст сливается: "Shower Head12 Inch". И вот из-за таких ошибок дальнейшая обработка данных становится нецелесообразной из-за некорректности текстовой информации - текст должен сохранить свой первозданный вид, т.е. такой, который мы видим открывая файл через Excel.

Буду благодарен, если вы поможете разобраться в этой проблеме.

Автор - master-dd
Дата добавления - 04.06.2018 в 14:36
Manyasha Дата: Понедельник, 04.06.2018, 15:16 | Сообщение № 5
Группа: Модераторы
Ранг: Старожил
Сообщений: 2193
Репутация: 892 ±
Замечаний: 0% ±

Excel 2010, 2016
Попробуйте так:
[vba]
Код
With Workbooks.Open(Filename:=fldr & s, Local:=True)
[/vba]


marinamorozova_box@mail.ru
ЯД: 410013299366744 WM: R193491431804
 
Ответить
СообщениеПопробуйте так:
[vba]
Код
With Workbooks.Open(Filename:=fldr & s, Local:=True)
[/vba]

Автор - Manyasha
Дата добавления - 04.06.2018 в 15:16
master-dd Дата: Понедельник, 04.06.2018, 15:43 | Сообщение № 6
Группа: Пользователи
Ранг: Участник
Сообщений: 61
Репутация: 0 ±
Замечаний: 0% ±

2016
Manyasha, ОГРОМНОЕ СПАСИБО!!! pray Как всё, оказывается, элементарно и просто. И перекодировка не нужна, как оказалось! Я только не понял, как это работает (Local:=True), но теперь буду использовать в дальнейшем такое решение!!!

respect respect respect
 
Ответить
СообщениеManyasha, ОГРОМНОЕ СПАСИБО!!! pray Как всё, оказывается, элементарно и просто. И перекодировка не нужна, как оказалось! Я только не понял, как это работает (Local:=True), но теперь буду использовать в дальнейшем такое решение!!!

respect respect respect

Автор - master-dd
Дата добавления - 04.06.2018 в 15:43
Manyasha Дата: Понедельник, 04.06.2018, 15:53 | Сообщение № 7
Группа: Модераторы
Ранг: Старожил
Сообщений: 2193
Репутация: 892 ±
Замечаний: 0% ±

Excel 2010, 2016
не понял, как это работает

разделители (точка с запятой или запятая) зависят от языка экселя. По умолчанию, этот параметр равен false, и открывает книгу с настройками английской версии (разделитель - запятая), устанавливая local=true, мы просим открыть файл с настройками экселя, т.е. с русскими (если конечно эксель русский).


marinamorozova_box@mail.ru
ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщение
не понял, как это работает

разделители (точка с запятой или запятая) зависят от языка экселя. По умолчанию, этот параметр равен false, и открывает книгу с настройками английской версии (разделитель - запятая), устанавливая local=true, мы просим открыть файл с настройками экселя, т.е. с русскими (если конечно эксель русский).

Автор - Manyasha
Дата добавления - 04.06.2018 в 15:53
master-dd Дата: Понедельник, 04.06.2018, 21:42 | Сообщение № 8
Группа: Пользователи
Ранг: Участник
Сообщений: 61
Репутация: 0 ±
Замечаний: 0% ±

2016
Manyasha, а вот сейчас я вообще в прострации - у меня английский Excel, но после того, как я применил Ваш элемент кода, у меня всё очень корректно открылось - я даже удалил большую часть кода, которая делала всякие замены/склейки. Просто теперь всё очень хорошо и быстро работает... Значит есть какой-то другой "секрет"...
 
Ответить
СообщениеManyasha, а вот сейчас я вообще в прострации - у меня английский Excel, но после того, как я применил Ваш элемент кода, у меня всё очень корректно открылось - я даже удалил большую часть кода, которая делала всякие замены/склейки. Просто теперь всё очень хорошо и быстро работает... Значит есть какой-то другой "секрет"...

Автор - master-dd
Дата добавления - 04.06.2018 в 21:42
boa Дата: Вторник, 05.06.2018, 08:08 | Сообщение № 9
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 167
Репутация: 27 ±
Замечаний: 0% ±

2013, 365
master-dd,
Секрет - не язык интерфейса Excel, у региональные настройки(Панель управления)


 
Ответить
Сообщениеmaster-dd,
Секрет - не язык интерфейса Excel, у региональные настройки(Панель управления)

Автор - boa
Дата добавления - 05.06.2018 в 08:08
Manyasha Дата: Вторник, 05.06.2018, 10:11 | Сообщение № 10
Группа: Модераторы
Ранг: Старожил
Сообщений: 2193
Репутация: 892 ±
Замечаний: 0% ±

Excel 2010, 2016
boa, точно, надо было справку перечитать прежде чем умничать))


marinamorozova_box@mail.ru
ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщениеboa, точно, надо было справку перечитать прежде чем умничать))

Автор - Manyasha
Дата добавления - 05.06.2018 в 10:11
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Корректно открыть через VBA файл формата csv в Excel (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс цитирования
© 2010-2018 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!