下列代码合并两个EXCEL文件后,DBF表文件中增加了两条空白记录,不知问题出自哪里?请高手赐教。
*!* 合并同一文件夹下多个EXCEL文件到DBF表文件中
Set Safety Off
Close Databases
Clear All
tpath=Sys(5)+Sys(2003)+[\] &&读取当前路径
Select 1
Create Table 成绩汇总表( 编号 C(8),姓名 C(10),出生年月 C(10),语文 C(5),数学 C(10),英语 C(5))
tn=Adir(ts,"&tpath.*.xls")&&创建一个数组ts,遍历当前路径下所有.XLS文件
tm=1
Do While tm<=tn
tfile=tpath +ts(tm,1)
eole=Createobject("excel.application")&&创建Excel对象
eole.workbooks.Open("&tfile.")&&调用Excel应用程序:
eole.worksheets("sheet1").Activate &&设置第1个工作表为激活工作表
eole.Visible=.F. &&不显示Excel窗口
eole.displayalerts=.F.
For i=1 To 2
k=3 &&从第三行取值
Do While k<33 &&假定Excel文件最多30行数据,可根据需要设置
If Isnull(eole.cells(k,1).Value)&&空值判断,如值为空则不继续读取
Exit
Endif
Select 1
Append Blank
Replace 编号 With Iif(Isnull(eole.cells(k,(i-1)*6+1).Value),[],Iif(Type("(eole.cells(k,(i-1)*6+1).value)")=[N], Alltrim(Str(eole.cells(k,(i-1)*6+1).Value, 8,0)), Alltrim(eole.cells(k,(i-1)*6+1).Value)))
Replace 姓名 With Iif(Isnull(eole.cells(k,(i-1)*6+2).Value),[],Alltrim(eole.cells(k,(i-1)*6+2).Value))
Replace 出生年月 With Alltrim(eole.cells(k,(i-1)*6+3).Text)
Replace 语文 With Alltrim(eole.cells(k,(i-1)*6+4).Text)
Replace 数学 With Alltrim(eole.cells(k,(i-1)*6+5).Text)
Replace 英语 With Alltrim(eole.cells(k,(i-1)*6+6).Text)
k=k+1
Enddo
Endfor
eole.workbooks.Close
eole.Quit
tm=tm+1
Enddo
Close Databases
Retu