Добрый день уважаемые форумчане, написал (собрал) вот такой вот макрос, обрабатывает он файлы замечательно, но закрывает почему-то не все книги (постоянно приходится в ручную закрывать последнюю).
Хотелось бы, чтобы макрос закрывал все книги, а не оставлял 1-2 открытыми.
Заранее спасибо.
Sub replace()
' Смена месяца автоматом в актах списания материалов
Dim T&
Dim i As Boolean
Dim oWbk As Workbook
Dim oFile, wsSh As Worksheet
With Application.FileDialog(msoFileDialogFilePicker)
.AllowMultiSelect = True
.InitialFileName = "*.xlsx*"
.Title = "??????? ????? ??? ????????? ??????"
If .Show = False Then Exit Sub
For Each oFile In .SelectedItems
workbooks.Open oFile, UpdateLinks
i = ActiveWorkbook.Name Like "Списание*.xlsx"
Select Case i
Case True
For T = 2 To Sheets.Count - 3
Sheets(T).Cells.replace What:="Акт Август", Replacement:="Акт Сентябрь", LookAt:= _
xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Next
Sheets(1).Select
End Select
Next oFile
End With
For Each oWbk In Application.workbooks
ActiveWorkbook.Close Savechanges = True
Next
End Sub
Хотелось бы, чтобы макрос закрывал все книги, а не оставлял 1-2 открытыми.
Заранее спасибо.
Sub replace()
' Смена месяца автоматом в актах списания материалов
Dim T&
Dim i As Boolean
Dim oWbk As Workbook
Dim oFile, wsSh As Worksheet
With Application.FileDialog(msoFileDialogFilePicker)
.AllowMultiSelect = True
.InitialFileName = "*.xlsx*"
.Title = "??????? ????? ??? ????????? ??????"
If .Show = False Then Exit Sub
For Each oFile In .SelectedItems
workbooks.Open oFile, UpdateLinks
i = ActiveWorkbook.Name Like "Списание*.xlsx"
Select Case i
Case True
For T = 2 To Sheets.Count - 3
Sheets(T).Cells.replace What:="Акт Август", Replacement:="Акт Сентябрь", LookAt:= _
xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Next
Sheets(1).Select
End Select
Next oFile
End With
For Each oWbk In Application.workbooks
ActiveWorkbook.Close Savechanges = True
Next
End Sub