EXCEL数据导入导出有关问题

EXCEL数据导入导出问题
导入导出都已正常实现,导出是做个过程在公共单元,用时调用,在各个单元都正常导出,导入时要把一个EXCEL表的数据一次性更新或添加进表里,通过在窗体上加个ADOCONNECTION连接到EXCEL,然后通过SELECT读取也都正常的把数据读到指定表里了,可现在问题是,在批量添加成功后,再点下面的导出时,提示:List index out of bounds(1) ,导不出来。
我想可能是导入时EXCEL对象处于打开状态,再导出到另一个表时没法创建导致出错的,可我用连EXCEL表的那个ADOConnection, ADOConnection2.Connected:=False;掉,也出现同样错误。我没有用LIST之类的控件。

delphi+access数据库

------解决方案--------------------
List index out of bounds(1)
就是访问越界错误,用F7单步跟踪执行,好好检查
------解决方案--------------------
把代码写完整我给你试一下

------解决方案--------------------
List index out of bounds(1)
就是访问越界错误
我也经常有遇到这种问题,如果有单元格,应该是源文件的单元格栏位数或行数与超出了你订义的数量,比如:一个数据集是100行记录,你逐行汇出,到了100行之后,你还要再汇101条记录时,就会出这个错误,栏位数也是这样的道理,所以你要追踪的方向可以放在这方面,检查你的数据的行数与栏位数,再对比执行汇出时的行数与栏位数。
希望我写的这些对你有帮助。
------解决方案--------------------
找到问题了,在导出的这个函数里
if dbname.Columns[1].Visible=False then
Continue;
就这两行导致的出错,把这两行去了就没事,但为什么我在导出其它时没错,这个因为是只有一列,所以出错,这两行在这里具体起什么作用,麻烦大哥给说明下,去掉后会有什么影响,因为这个代码是我在教程上复制下来的
-----------应该是你有隐藏的栏位,系统也算是要导出的栏位,所以就有记数了,但是你汇出到的excel表中却没有计算这两个隐藏的栏位的数量,所以就造成越界,比如,你的程序栏位是10,另外有两个栏位是隐藏的,那么你的要汇出的栏位就12栏,然后你指定汇出的目标只指定了10栏,在汇出时就会出错。