Страницы: 1
RSS
слияние данных из разных таблиц разных файлов в одну
 
Здравствуйте уважаемые программисты!  
Подскажите пожалуйста как объединить несколько таблиц из разных файлов в одну. файлов более 1000 штук. Пример что есть и что нужно прилагаю.
 
Вот засада... опускаю руки, может кто сталкивался - всё работает, но только с текстовыми файлами. Поэтому к csv дописал txt, ну и файлы переименовал в  
0aae98c3107f65fedbea60d718f8cea4.csv.txt  
 
 
Sub CopyData()  
Application.ScreenUpdating = False  'нет мелькания на экране  
Set wsSum = ActiveSheet  
strFile = Dir(ThisWorkbook.Path & "\zakaz2\" & "*.csv.txt")  
Do While strFile <> ""          'Цикл по файлам  
   iLastRow = Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row + 1  
 
Workbooks.OpenText Filename:=ThisWorkbook.Path & "\zakaz2\" & strFile, Origin:= _  
       xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _  
       xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=True, _  
       Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 2), _  
       Array(2, 2))  
Set wb = ActiveWorkbook  
       wb.Sheets(1).[b1:b20].Copy
       wsSum.Activate  
       wsSum.Range(Cells(iLastRow, 1), Cells(iLastRow, 1)).PasteSpecial Paste:=xlAll, Operation:=xlNone, SkipBlanks:=False _  
       , Transpose:=True  
   wb.Close False  
   strFile = Dir  
Loop  
Application.ScreenUpdating = True  
End Sub
 
В принципе, можно использовать - Тоталом все файлы переименовать в txt, в коде исправить "*.csv.txt" на "*.txt"
 
Да я пробовал вначале - открывает, не разделяя на поля... Ваш код проверен, работает?
 
Проверил - не работает, т.е. не делит по полям. Может у меня что расстроилось? При стандартном запуске всё делится....
 
я сам в макросах почти не разбираюсь. поэтому нашел еще альтернативный вариант скомпоновать *.csv через TXTcollector и ипортировать в эксель. но получить итоговую таблицу не получается. как быть в таком случае?  
 
правда так очень долго получается.
 
Всё открывает, но не кодом.  
А файлы есть в аттачменте, да их и самому сделать легко...
 
maxburn, если надо срочно - переименуйте все файлы в тхт и пробуйте первый код - работает.
 
нет, не срочно, я лучше подожду.
 
Вы его всёж доконали, не мытьём, так катанием... Я думал, есть законный путь...  
Так работает, только на 2000 не нравится  
', TrailingMinusNumbers:=True  
надо отключить.
 
Только вот я бы ещё счётчик файлов и индикацию в СтатусБар добавил - 1000 всётаки...
 
Интересный эффект - сейчас дома пробую тот мой первый код (где засада) - всё работает как надо, без переименований. CSV отлично сами разбиваются по столбцам, изворачиваться с "текст по столбцам" не надо...  
Вот так бывает, вроде и система одна, и Эксель2000... только тут сейчас русский (работает), днём был английский (не работает).  
Код от The_Prist с брачком -    
strFile = Dir(ThisWorkbook.Path & "\zakaz2\" & "*.*")  
вот так надо, а то только ".csv" видел.
 
огромное спасибо Вам всем, очень помогли! а то я целый день колупался в пустую ;)
Страницы: 1
Читают тему
Наверх