Доброго времени суток всем. Проблема состои в том что при считывании информации с листа excel вылетает ошибка
Ole error 800401A8 и данные с листа записываются но не все, что делать незнаю помогите плз

вот код для считывания:
Код:
begin
if OpenDialog1.Execute then
begin
ExcelApplication1.ConnectKind := ckNewInstance;
ExcelApplication1.AutoConnect:=true; // запускаем Excel
ExcelApplication1.AutoQuit := true;
// открываем книгу
ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks.OpenXML(OpenDialog1.FileName,EmptyParam));
// соединяемся с книгой
ExcelApplication1.ConnectTo(ExcelWorkbook1.Application);
ExcelWorksheet1.ConnectTo(ExcelWorkbook1.ActiveSheet as ExcelWorksheet);
row:=30;
//считываем из файла
for i:=2 to row do
begin
// считываем ячейки
v1:=ExcelWorksheet1.Range['A'+inttostr(1),EmptyParam];
v2:=ExcelWorksheet1.Range['A'+inttostr(i),EmptyParam];
v3:=ExcelWorksheet1.Range['B'+inttostr(i),EmptyParam];
v4:=ExcelWorksheet1.Range['C'+inttostr(i),EmptyParam];
v5:=ExcelWorksheet1.Range['D'+inttostr(i),EmptyParam];
v6:=ExcelWorksheet1.Range['E'+inttostr(i),EmptyParam];
v7:=ExcelWorksheet1.Range['F'+inttostr(i),EmptyParam];
// записываем в таблицу
Table1.Append;
// добавляеь запись в БД
Table1.FieldByName('Gruppa').AsString:=VarToStr(v1); // записываем данные
Table1.FieldByName('FIO').AsString:=VarToStr(v2);
Table1.FieldByName('Data').AsString:=DateToStr(v3);
Table1.FieldByName('Ctrah_komp').AsString:=VarToStr(v4);
Table1.FieldByName('Ceria_polisa').AsString:=VarToStr(v5);
Table1.FieldByName('Nomer_polisa').AsString:=VarToStr(v6);
Table1.FieldByName('Dom_adres').AsString:=VarToStr(v7);
Table1.Post; // сохраняем изменения
// чтоб приложение не "повисало"
Application.ProcessMessages;
end;
// выходим из Excel
ExcelApplication1.Quit;
end;