Sub Extract_Text_Files()
' Written by Barrie Davidson
Dim Rollup_File_Name As String
Dim File_Names As Variant
Dim File_count As Integer
Dim Active_File_Name As String
Dim Counter As Integer
Dim File_Save_Name As Variant
Dim Characters As Integer
File_Names = Application.GetOpenFilename("Text Files (*.txt), *.txt", , , , True)
Application.ScreenUpdating = False
Application.DisplayAlerts = False
File_count = UBound(File_Names)
Counter = 1
Do Until Counter > File_count
Workbooks.Add
Rollup_File_Name = ActiveWorkbook.Name
Active_File_Name = File_Names(Counter)
Workbooks.OpenText FileName:=Active_File_Name, Origin:=xlWindows _
, StartRow:=1, DataType:=xlFixedWidth, FieldInfo:=Array(Array(0, 2), _
Array(20, 1), Array(40, 1), Array(60, 1))
Active_File_Name = ActiveWorkbook.Name
Range("A1:A10").Copy ' You need to change this to the correct copy range
Windows(Rollup_File_Name).Activate
ActiveSheet.Paste
Application.CutCopyMode = False
Windows(Active_File_Name).Activate
File_Save_Name = InStr(1, Active_File_Name, ".txt", 1) - 1
File_Save_Name = Mid(Active_File_Name, 1, File_Save_Name) & ".xls"
Windows(Rollup_File_Name).Activate
ActiveWorkbook.SaveAs FileName:=File_Save_Name, FileFormat:= _
xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
, CreateBackup:=False
File_Names(Counter) = ActiveWorkbook.FullName
ActiveWindow.Close
Windows(Active_File_Name).Activate
ActiveWindow.Close
Counter = Counter + 1
Loop
Counter = 1
Do Until Counter > File_count
Workbooks.Open FileName:=File_Names(Counter)
ActiveWindow.SelectedSheets.PrintOut Copies:=1
Counter = Counter + 1
ActiveWindow.Close
Loop
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
Copyright ©
2001 by Barrie R. Davidson
Added April 6, 2001