![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 19.11.2011
Сообщений: 128
|
![]()
Сначала суть работы файла:
Есть несколько txt файлов с одинаковой структурой (таблицами) но разные данные. Необходимо указать путь ко всем этим файлам, задать параметры импорта (кодировка, разбивка по столбцам и т.д.) при загрузке первого файла, а остальные файлы загрузятся в эксель (каждый на свою страницу) автоматически с теми же настройками. С настройками разбивки по столбцам и типом каждого столбца я разобрался. А вот с настройкой кодировки текста не получается... ____ Пример файла приложен ____ А теперь суть проблемы: Если импорт файла .txt записать макросом, то получится код содержащий все параметры, которые были заданы при импорте. Если при импорте указать формат файла 1251: Кириллица(Windows) то в коде будет строчка .TextFilePlatform = 1251 которой задается кодировка текста. Если задать 866: Кириллица(Dos) то в коде будет строчка .TextFilePlatform = 866 ОДНАКО если записать данный параметр в перемнную X, вызвав окно импорта файла макросом вот так: If Application.Dialogs(xlDialogImportT extFile).Show Then With ActiveSheet.QueryTables(1) X = .TextFilePlatform End With Else: MsgBox "Отменен" End If то значение X уже будет не 1251 или 866, а 29 и 24 соответственно. И это будет порядковый номер кодировки в списке где выбираешь. Если потом сделать импорт файла макросом и задать значение .TextFilePlatform = X то, естественно, желаемого результата не получится... Как все же правильно задавать значение переменной X, вызвав окно импорта файла макросом ?
Нет ничего невозможного, главное верить в это.
Последний раз редактировалось Snekich; 07.12.2011 в 08:19. |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 19.11.2011
Сообщений: 128
|
![]()
Я уже сделал вот такую табличку из 2-х колонок, представляющую собой список всех кодировок в моем Excel 2007 и некий порядковый номер который присваивается каждой кодировке.
Т.е. в моем случае первый столбец это получаемое значение X, а второй столбец - код кодировки который мне как раз нужно задавать переменной. (как видно они не совсем по порядку, я проверил только начало этого списка, конец и несколько из середины) 1 10000 2 1252 3 850 2 708 4 720 5 28596 6 10004 7 1256 8 775 9 28594 10 1257 11 852 12 28592 13 10029 14 1250 15 54936 16 936 17 20936 18 10008 19 950 20 20000 21 20002 22 10002 23 10082 24 866 25 28595 26 20866 27 21866 28 10007 29 1251 ... 103 20105 104 28591 105 10000 106 1252 Если импорт файла записать макросом то в параметрах импорта запишется строка (если выбрать Кириллицу(Windows) из списка): .TextFilePlatform = 1251 получается .TextFilePlatform присваивается значение из второго столбца таблички кодировок. а если макросом сделать х = .TextFilePlatform то X будет равняться 29 т.е. значению из первого столбца вышеприведенной таблицы, а мне нужно что бы X было присвоено значение из второго столбца (т.к. в другой версии екселя значение во второй колонке могут не совпадать со значиями из первой колонки вышеприведенной таблицы и макрос работать не будет в другом екселе.) Что-то я совсем в тупике как решить данную проблему....
Нет ничего невозможного, главное верить в это.
Последний раз редактировалось Snekich; 07.12.2011 в 19:57. |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 14.02.2009
Сообщений: 753
|
![]()
Попробуй так
Код:
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 19.11.2011
Сообщений: 128
|
![]()
Ну так проблема то не решается т.к. кодировки 1251, 866 я только как пример привел, на самом то деле их 106 штук может быть. Конечно все 106 никогда не будут использоваться, на практике наверное с десяток из них.
Но плюс этот список кодировок не всегда одинаковый в разных виндоусах т.к. задается настройками в виндовз. Получается 29 (порядковый номер) , возможно, не будет соответствовать 1251 т.к. это я уже методом проб и ошибок выявил в своем екселе (в своем виндовсе) Мне просто не верится, что нет способа в экселе решить эту проблему "универсальным" способом....
Нет ничего невозможного, главное верить в это.
Последний раз редактировалось Snekich; 07.12.2011 в 16:16. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Создание кнопки для импорта данных | Anastasia666 | Microsoft Office Access | 2 | 28.06.2011 20:57 |
Обновление таблицы Access путем импорта данных из DBF | TranzitZP | Microsoft Office Access | 9 | 11.04.2011 00:26 |
касательно импорта данных из Web | Volodymyr | Microsoft Office Excel | 3 | 14.02.2011 13:38 |
HELP! Необходим скрипт на VB, автоматизирующий стандартную процедуру импорта из текстового файла | Kerguru | Microsoft Office Access | 1 | 17.12.2009 20:33 |