first you dont need loops here.
remove them leaving one line, try:
DoCmd.TransferSpreadsheet acImport, acSpreadshetTypeExcel9, table, filename, hasFieldNames, worksheetName & "$"
dont forget $ sign after worksheet name.
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