Как загрузить несколько файлов TXT, введя настройки только 1 раз?

Автор Snekich, 19.11.2011, 09:32

« назад - далее »

Snekich

Есть не более 12 *.txt файлов (фин.отчетность за каждый месяц)
Каждый представляет из себя некую "шапку" и таблицу под ней с отчетностью.

Выбор файлов и загрузку первого файла я знаю как сделать.

А как сделать так, что бы при загрузке в ексель первого файла он спрашивал настройки загрузки (окошко, где выбираешь как разбивать по столбцам), а последующие файлы загружались автоматически по таким же настройкам?
(каждый файл на отдельной странице)

Эти настройки хранятся в строке:
      .TextFileFixedColumnWidths = Array(1, 7, 1, 24, 1, 30, 1, 6, 1, 18, 1, 18, 1, 18, 1, 18, 1, _
       18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1)

Вот как в первом файле их выбрать вручную и "распространить" на остальные файлы?


P.S.

предполагаю, что нужно задать переменную и настройки произвести так:
.TextFileFixedColumnWidths = MyFixed
Это уже сделал в приложенном файле.

Только как теперь остается вопрос, как вызвать окошко, в котором разбивается текст на столбцы и записать результата этого разбиения в переменную
MyFixed = Array(1, 7, 1, 24, 1 и т.д.)

Snekich

Нашел способ.
Первый файл надо открыть вот так и получим две переменные с нужными настройками

Dim MyFixed(), MyColumn()
For Each x In ActiveSheet.QueryTables
   x.Delete
Next
If Application.Dialogs(xlDialogImportTextFile).Show Then
   With ActiveSheet.QueryTables(1)
       MyColumn = .TextFileColumnDataTypes
       MyFixed = .TextFileFixedColumnWidths
   End With
Else: MsgBox "Не выбран"
End If