Страницы: 1
RSS
Как импортировать данные из текстового файла?
 
Не могу прописать в макросе, импорт из текстовых файлов и вставку данных из них в определенные листы в существующем файле.  
Смысл работы макроса  
Предлагает пользователю открыть уже существующий файл в формате xlsx. Создает в этом файле листы с именами: Выгруз, подгот.неразобр., подгот.разобр., лист загр.неразобр., лист загр.разобр.  
Спрашивает у пользователя открыть текстовые файлы, их всегда 2. Структура имени всегда:  
разобрано_"Клиент"_clean  
неразобрано_"Клиент"_clean, "Клиент" - может быть любое значение  
Помогите как сделать так чтобы он вставлял данные из этих двух файлов в соответствующие листы подготовки. При этом обязательное условие - кодировка 1251:Кирилица (windows) и вставить значения как текстовые, за исключением столбца 3 и 4. В качестве разделителя выступают "знаки табуляции".  
Понимаю что тема уже избитая, но никак не пойму как прикрутить все то, что было в других темах в мой макрос.    
Для большей наглядности в архиве прилагается макрос с моими набросками  
 
P.S. Был бы благодарен если ваш код будет содержать комментарии по поводу его работы
 
ПКМ на текстовом файле, "Открыть с помощью MS Excel"
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


https://github.com/nervgh
 
{quote}{login=nerv}{date=09.08.2011 01:40}{thema=}{post}ПКМ на текстовом файле, "Открыть с помощью MS Excel"{/post}{/quote}  
 
:) мне нужно именно в макросе, т.к. импорт будет лишь одним из этапов его работы
 
With Workbooks.Open(Filename:="PATH")  
End With
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


https://github.com/nervgh
 
Если там разделители TAB, то можно например переименовать файлы, добавив расширение xls и открывать обычным образом как xls, а там уже макросом раскидывать.  
Но я открывал бы тексты с помощью FSO, читал построчно файлы и набирал данные в пять массивов, которые в конце выгружал на листы.  
В принципе несложно (если не будет проблем с кодировкой), но вот всё сопутствующее туманно и геморно. И неинтересно...
 
Может хотя бы кто нибудь поянить работу вот этой части макроса:  
 
Workbooks.OpenText filename:=GetFolderPath, Origin:=1251, DataType:=xlDelimited, _  
   Other:=True, FieldInfo:=Array(Array(1, 2), Array(13, 2), Array(15, 2))  
 
как я понял FieldInfo как раз и определяет как обрабатывать каждый столбец. Вот только что то не получается у меня вставить как текст
 
1.включить макрорекордер  
2.выбрать данные-получение внешних данных-из текста  
3.настроить параметры импорта как надо    
4.выключить макрорекордер  
5.смотреть получившийся код
 
Вы читать умеете?  
 
With Workbooks.Open(Filename:="ПОЛЬНЫЙ ПУТЬ К ВАШЕМУ ФАЙЛЫ + РАСШИРЕНИЕ"):End With
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


https://github.com/nervgh
 
{quote}{login=nerv}{date=09.08.2011 03:32}{thema=}{post}Вы читать умеете?  
 
With Workbooks.Open(Filename:="ПОЛЬНЫЙ ПУТЬ К ВАШЕМУ ФАЙЛЫ + РАСШИРЕНИЕ"):End With{/post}{/quote}  
А вы?  
... Спрашивает у пользователя открыть текстовые файлы...  
Мне нужен вывод диалогового окна, чтобы указать текстовые файлы, потому что неизвестно какие текстовые файлы и откуда именно потребуются на этот раз
 
С выбором можно так:  
 
Sub dd()  
Dim avFiles, i As Long  
avFiles = Application.GetOpenFilename("Text(*.txt),*.txt", , "Выбор файлов", , True)  
If VarType(avFiles) = vbBoolean Then Exit Sub  
 
For i = 1 To UBound(avFiles)  
With Workbooks.Open(Filename:=avFiles(i))  
'.........нужные действия  
End With  
Next  
End Sub
 
простите, что был груб : ) Я думал, что у Вас проблемы только с открытием файла, а остальное само собой разумеется. Пример кода привел sva.
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


https://github.com/nervgh
Страницы: 1
Читают тему
Наверх