Цитата |
---|
Dana.Q написал: Не открывая каждую по отдельности |
нельзя. Открывать все равно придется. Но это можно сделать макросом, который откроет каждую и сделает всю грязную работу.
Цитата |
---|
Dana.Q написал: В примере представлен |
пример не представлен...
По сути код не сильно сложный(если правильно понял):
Код |
---|
Sub Get_All_File_from_Folder()
Dim sFolder As String, sFiles As String
Dim wb As Workbook, ws As Worksheet
With Application.FileDialog(msoFileDialogFolderPicker)
If .Show = False Then Exit Sub
sFolder = .SelectedItems(1)
End With
sFolder = sFolder & IIf(Right(sFolder, 1) = Application.PathSeparator, "", Application.PathSeparator)
Application.ScreenUpdating = False
sFiles = Dir(sFolder & "*.xls*")
Do While sFiles <> ""
'открываем книгу
Set wb = Application.Workbooks.Open(sFolder & sFiles, False, False)
For Each ws In wb.Worksheets
'пропуск ошибок на случай какой-нибудь сводной на листе
On Error Resume Next
'заменяем все данные на листе на значения
ws.UsedRange.Value = ws.UsedRange.Value
On Error GoTo 0
Next
'Закрываем книгу с сохранением изменений
wb.Close True
sFiles = Dir
Loop
Application.ScreenUpdating = True
End Sub |