Приватное Sub LoopThroughXLS_ConsolidateOneSheet ()
'раскрывает все workbooks в скоросшивателе и консолидирует их в одном листе на активно workbook
application.ScreenUpdating = ложный 'экран disable уточняя для избежания проблескивать экрана
Тусклое wbk1 как Workbook, wbk2 как Workbook, I как длиной, strWbk как шнур, sht1 как рабочий лист
Тусклое blFirst как булевско
Тусклые strWbkNames (1 до 500) как шнур, FileName как шнур, intFileCount как длиной, intWbkLoop как длиной
'*************** УТОЧНЕНИЯ ПАРАМЕТРОВ ************************* ЗДЕСЬ
Strpath Const как шнур = «C:\Temp\test» 'изменение к скоросшивателям куда вы падаете ваши архивы
blHeader Const как булевско = True 'true если ваши данные имеют коллекторы, то, ложно в противном случае
'**************************************************************
Установите wbk1 = ActiveWorkbook
Установите sht1 = ActiveSheet
blFirst = True
FileName = Dir (strpath & «\ *.xls»)
Сделайте пока "" <> FileName
intFileCount = intFileCount + 1
strWbkNames (intFileCount) = FileName
FileName = Dir
Петля
application.DisplayAlerts = ложно
Для intWbkLoop = 1 к intFileCount
Если application.WorksheetFunction.CountA, то (sht1.Columns (1)) = 0 после этого
sht1.range («A1»). Отборно
Еще
sht1.range («a» & sht1.Rows.Count). Конец (xlUp). Смещение (1, 0). Отборно
Закончитесь если
Установите wbk2 = Workbooks.Open (strpath & «\» & strWbkNames (intWbkLoop))
С wbk2.Sheets (1)
Если blFirst = True после этого
blFirst = ложно
.UsedRange.Copy
Еще
Если blHeader = True после этого
.UsedRange.Offset (1).Copy
Еще
.UsedRange.Copy
Закончитесь если
Закончитесь если
Закончитесь с
sht1.Paste
wbk2.Close (ложное)
Затем
application.DisplayAlerts = True
application.ScreenUpdating = True
Подводная лодка конца
|