aggregate sheets from many excel workbooks into one workbook
I think the way you are doing this is reasonable.  Regarding pre-existing blank sheets..The rewritten code below removes blank worksheet(s) in the importing workbook, after the selected workbooks' worksheets have been inserted.

Sub openDialogBoxAndSelectFiles()

  Dim wb1 As Workbook
  Set wb1 = ActiveWorkbook

    'Cache worksheet references
    Dim originalWorksheets As Collection
    Set originalWorksheets = New Collection
    For i = 1 To wb1.Sheets.Count
      originalWorksheets.Add wb1.Sheets(i)
    Next i

    With Application.FileDialog(msoFileDialogFilePicker)
        .AllowMultiSelect = True
        .InitialFileName = ThisWorkbook.Path &amp; "\"
        .Title = "Paddington Bear Selection Window"
        .ButtonName = "Omlette"

        .Filters.Clear
        'only interested in Exel workbooks
        .Filters.Add "All Files", "*.xls*"


        If .Show = True Then
            For Each file In .SelectedItems
                ImportWorksheets wb1, file
            Next file
        End If
    End With

    'Delete non-imported blank worksheets
    If wb1.Sheets.Count &gt; originalWorksheets.Count Then
        DeleteBlankSheets originalWorksheets
    End If

End Sub

Private Sub ImportWorksheets(ByRef wb1 As Workbook, ByVal filename As Variant)
On Error GoTo ErrorExit
    Dim wb2 As Workbook
    Set wb2 = Workbooks.Open(filename:=filename, ReadOnly:=True)

On Error GoTo WorkbookOpenError
    Dim i As Long
    For i = 1 To wb2.Sheets.Count
      wb2.Sheets(i).Copy before:=wb1.Sheets(1)
    Next i

WorkbookOpenError:
    wb2.Close

ErrorExit:
End Sub

Private Sub DeleteBlankSheets(ByRef originalWorksheets As Collection)
On Error GoTo ErrorExit

    Dim displayAlertsFlagCurrentValue As Boolean
    displayAlertsFlagCurrentValue = Application.DisplayAlerts

    'Prevent Sheet deletion prompts
    Application.DisplayAlerts = False

    Dim wksht As Worksheet
    For Each wksht In originalWorksheets
        If IsBlank(wksht) Then
            wksht.Delete
        End If
    Next wksht

ErrorExit:
    Application.DisplayAlerts = displayAlertsFlagCurrentValue
End Sub

Private Function IsBlank(ByRef wksht As Worksheet) As Boolean
    IsBlank = WorksheetFunction.CountA(wksht.UsedRange) = 0 And wksht.Shapes.Count = 0
End Function