Sub probeg()
MyPath = ThisWorkbook.Path
MyName = ThisWorkbook.Name
Set aaa = ThisWorkbook
With Application
.ScreenUpdating = False 'обновление экрана
.DisplayAlerts = False 'выод системных сообщений
.Calculation = xlManual 'автопересчет формул
xxx = Dir(MyPath + "\*.xls")
t1 = Time
i = 3
k = 1
UserForm1.Show
'Dim yyy(7) As String
Do While Len(xxx) > 0
If xxx <> MyName Then 'And Right(xxx, 3) = "xls" 'Then
On Error GoTo l1
Workbooks.Open Filename:=MyPath + "\" + xxx, ReadOnly:=True
GoTo l2
l1:
On Error GoTo l3
Workbooks.Open Filename:=MyPath + "\" + xxx, ReadOnly:=True, UpdateLinks:=False, CorruptLoad:=xlRepairFile
l2:
i = i + 1
aaa.Sheets(1).Cells(i, 1) = ActiveWorkbook.Sheets("1").Cells(5, 136).Text
aaa.Sheets(1).Cells(i, 2) = ActiveWorkbook.Sheets("1").Cells(1, 136).Text
aaa.Sheets(1).Cells(i, 3) = ActiveWorkbook.Sheets("1").Cells(23, 121).Text
aaa.Sheets(1).Cells(i, 4) = ActiveWorkbook.Sheets("1").Cells(25, 121).Text
aaa.Sheets(1).Cells(i, 5) = ActiveWorkbook.Sheets("1").Cells(9, 136).Text
aaa.Sheets(1).Cells(i, 6) = ActiveWorkbook.Sheets("1").Cells(27, 121).Text
aaa.Sheets(1).Cells(i, 7) = ActiveWorkbook.Sheets("1").Cells(48, 170).Text
ActiveWorkbook.Close False
'Cells(i, 1) = yyy(1)
'Cells(i, 2) = yyy(2)
'Cells(i, 3) = yyy(3)
'Cells(i, 4) = yyy(4)
'Cells(i, 5) = yyy(5)
'Cells(i, 6) = yyy(6)
'Cells(i, 7) = yyy(7)
UserForm1.l1.Caption = xxx
UserForm1.Repaint
k = k - 1
l3:
End If
xxx = Dir
Loop
UserForm1.Hide
.ScreenUpdating = True 'обновление экрана
.DisplayAlerts = True 'выод системных сообщений
.Calculation = xlAutomatic 'автопересчет формул
End With
t1 = Time - t1
Cells(1, 3) = t1
End Sub
тут добавлена проверка файла на ошибки, у меня в 7 версии иногда перед открытием появляется запрос на восстановление файла, если он с ошибкой записан был
MyPath = ThisWorkbook.Path
MyName = ThisWorkbook.Name
Set aaa = ThisWorkbook
With Application
.ScreenUpdating = False 'обновление экрана
.DisplayAlerts = False 'выод системных сообщений
.Calculation = xlManual 'автопересчет формул
xxx = Dir(MyPath + "\*.xls")
t1 = Time
i = 3
k = 1
UserForm1.Show
'Dim yyy(7) As String
Do While Len(xxx) > 0
If xxx <> MyName Then 'And Right(xxx, 3) = "xls" 'Then
On Error GoTo l1
Workbooks.Open Filename:=MyPath + "\" + xxx, ReadOnly:=True
GoTo l2
l1:
On Error GoTo l3
Workbooks.Open Filename:=MyPath + "\" + xxx, ReadOnly:=True, UpdateLinks:=False, CorruptLoad:=xlRepairFile
l2:
i = i + 1
aaa.Sheets(1).Cells(i, 1) = ActiveWorkbook.Sheets("1").Cells(5, 136).Text
aaa.Sheets(1).Cells(i, 2) = ActiveWorkbook.Sheets("1").Cells(1, 136).Text
aaa.Sheets(1).Cells(i, 3) = ActiveWorkbook.Sheets("1").Cells(23, 121).Text
aaa.Sheets(1).Cells(i, 4) = ActiveWorkbook.Sheets("1").Cells(25, 121).Text
aaa.Sheets(1).Cells(i, 5) = ActiveWorkbook.Sheets("1").Cells(9, 136).Text
aaa.Sheets(1).Cells(i, 6) = ActiveWorkbook.Sheets("1").Cells(27, 121).Text
aaa.Sheets(1).Cells(i, 7) = ActiveWorkbook.Sheets("1").Cells(48, 170).Text
ActiveWorkbook.Close False
'Cells(i, 1) = yyy(1)
'Cells(i, 2) = yyy(2)
'Cells(i, 3) = yyy(3)
'Cells(i, 4) = yyy(4)
'Cells(i, 5) = yyy(5)
'Cells(i, 6) = yyy(6)
'Cells(i, 7) = yyy(7)
UserForm1.l1.Caption = xxx
UserForm1.Repaint
k = k - 1
l3:
End If
xxx = Dir
Loop
UserForm1.Hide
.ScreenUpdating = True 'обновление экрана
.DisplayAlerts = True 'выод системных сообщений
.Calculation = xlAutomatic 'автопересчет формул
End With
t1 = Time - t1
Cells(1, 3) = t1
End Sub
тут добавлена проверка файла на ошибки, у меня в 7 версии иногда перед открытием появляется запрос на восстановление файла, если он с ошибкой записан был