Importar datos de excel a access 2010

Cordial Saludo

Estoy tratando de importar un rango de excel a access, despues de realizar algunas validaciones le pongo un nombre al rango y utilizo la siguiente linea de codigo:

DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, tablaDestino_Final, ruta, True, "datosXls"

sin embargo me genera error. "3011" en tiempo de ejecucion, cuando lo corro en 2013 lo hace bien y me gustaria saber que debo hacer.

Nota: El nombre del rango lo pongo desde access. El codigo completo es este:

wb.activesheet.Name = "Cargar"
wb.activesheet.unprotect "Jueves07052015"
wb.activesheet.Rows("1:7").entirerow.Delete
wb.activesheet.autofiltermode = False
UltimaFila = wb.sheets("Cargar").range("B500000").End(-4162).row 'xlup
ultimacol = wb.sheets("Cargar").range("A1").End(-4161).Column '-4161= xltoRight
i = 1
Do While Len(wb.sheets("cargar").cells(1, i)) > 1
'Debug.Print wb.sheets("cargar").cells(1, i)
i = i + 1
Loop
If i > 1 Then
ultimacol = i - 1
End If
wb.sheets("Cargar").range("A1", wb.sheets("Cargar").cells(UltimaFila, ultimacol)).Name = "datosXls"
'quitar posibles filtros
'==============
' strINSERT INTO [" & tablaDestino_Final & _
' "] SELECT *" & _
' " FROM [" & tablaDestino_Temp & "]"
DoCmd.SetWarnings False
DoCmd.RunSQL "Delete FROM [" & tablaDestino_Final & "]"
DoCmd.SetWarnings True
' strSql2 = "
On Error GoTo errores
' On Error GoTo 0
'Transferir datos a la tabla temporal
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, tablaDestino_Final, ruta, True, "datosXls" 'Rangocargar
'cerrar libro excel
wb.Close , savechanges:=False
'strSql = "Delete FROM " & tablaDestino_Final
DoCmd.SetWarnings False
' DoCmd.RunSQL strSql
' DoCmd.RunSQL strSql2
DoCmd.SetWarnings True
'borra datos tabla temporal
' strSql = "Delete FROM [" & tablaDestino_Temp & "]"
' DoCmd.SetWarnings False
' DoCmd.RunSQL strSql
' DoCmd.SetWarnings False
MsgBox "Importación completa", , "SIED"
Set objExcelApp = Nothing
Set wb = Nothing
Exit Sub

Añade tu respuesta

Haz clic para o