first you dont need loops here.
remove them leaving one line, try:
dont forget $ sign after worksheet name.DoCmd.TransferSpreadsheet acImport, acSpreadshetTypeExcel9, table, filename, hasFieldNames, worksheetName & "$"
it's just an adoption to below code.
below is a working code that i'm currently using to import multiple sheets (xl sheet name = acc table name) with Office 2010 by deleting current Access tables.
as i don't have Office 2000 installed on my pc, i can't test the possible Office 2000 adoption of the code.
afaik you can't directly import data from upper versions of Office programs.
tutorial:
http://www.accessmvp.com/KDSnell/EXCEL_Import.htm
Sub import_multi_XL_tbl() Dim wsList As Variant Dim xlFile As String Dim i As Integer wsList = Array("Sheet1", "Sheet2", "Sheet3", "Sheet4", "Sheet5", "Sheet6") xlFile = "C:\MyFolder\MySubFolder\MyXLFile.xlsm" With DoCmd .SetWarnings False For i = LBound(wsList) To UBound(wsList) On Error Resume Next .RunSQL "DROP TABLE " & wsList(i) .TransferSpreadsheet _ acImport, _ acSpreadsheetTypeExcel12Xml, _ wsList(i), _ xlFile, _ True, _ wsList(i) & "$" On Error GoTo 0 Next .SetWarnings True End With End Sub




