Pues entonces tienes de dos caminos, 1) abrir el archivo Excel copiar el rango y ponerlo en otra hoja del libro y continuar como lo has venido haciendo ó 2) Hacer una macro en la que le pases como parámetro el rango que quieres copiar y pegarlo en una hoja de resultados. Te pongo el ejemplo como lo haría en Delphi:
Código Delphi
[-]
uses ComObj,....
procedure CopiaDatos(NombreArchivo, Rango: String);
var
Excel, Libro: Variant;
begin
try
Excel := CreateOleObject('Excel.Application');
except
Excel.Quit;
ShowMessage('Imposible abrir Excel');
exit;
end;
Excel.DisplayAlerts := False;
Excel.WorkBooks.Open(NombreArchivo);
Excel.WorkSheets['Fuente'].Select;
Excel.Range[Rango].Select;
Excel.Selection.Copy;
Libro := Excel.Workbooks[1];
Excel.WorkSheets['Destino'].Select;
Excel.Range['A1'].Select;
Excel.ActiveSheet.Paste;
Libro.SaveAs(NombreArchivo);
Excel.Quit;
end;
Donde Fuente y Destino son hojas del libro de Excel. NombreArchivo es la ruta completa del archivo de Excel. Rango es el rango que quieres llevarte a la base de datos.
PD: Necesitas ver si es necesario que salves el archivo de lo contrario, no necesitas la variable Libro.
Espero te sirva
Saludos