I suggest initially you set up a table with all the sheet tab names (exactly matching as in the source spreadsheet) and this can be used to loop through a recordset of the sheet tab names and use the
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, sheetTabName, _
vaFileName, False, sheetTabName
vaFileName is a variable that holds your the name of the file you are using (you can use the Application.FileDialog(msoFileDialogFilePicker) to get the user to browse for the spreadsheet file)
sheetTabName is the variable that holds the name of the current tab name from your recordset collection and you can use it also to name the table
Hope this all makes sense
David