Here is a formula based solution that would require that all workbooks retain theirs names and be open at the same time in order for this to work.
I inserted a column at Column A of all the workbooks. In the sub workbooks there is a formula that numbers the rows that have data. This is the formula entered into A2 of each sub workbook:
Formula:
=IF(B2<>"",MAX($A$1:A1)+1,"")
In A1 of each sub workbook except the first this formula to retrieve the max value from column A of the previous workbook is used using the name of the previous workbook in the series :
Formula:
=MAX('[Example Template 1.xlsx]Sheet1'!A:A)
All of the max values in the workbooks is brought forward to the Master workbook with this formula. The names of the workbooks for this example are in BN3:BN5 and this formula is entered in BO3 and filled down:
Formula:
=MAX(INDIRECT("'["&BN3&".xlsx]Sheet1'!A:A"))
The above values are then used in column A of the Master workbook to determine how many rows to assign to each workbook. This formula is entered into A2 and filled down:
Formula:
=IF(ROWS($1:1)>MAX(BO:BO),"",INDEX(BN:BN,MATCH((ROWS($A$1:A1)-1),BO:BO)+1))
Then to retrieve the data from each workbook the following VLOOKUP formula is entered into B2 and filled across and down:
Formula:
=IFERROR(VLOOKUP((ROWS($A$2:A2)-1)*1+1,INDIRECT("'["&$A2&".xlsx]Sheet1'!A2:BB400"),COLUMNS($A$1:B1),0),"")
Here are your workbooks setup so that you can try out the setup.
Bookmarks