vb运行时提示 实时错误'62' 输入超出尾文件

Print "Calculating now ,Please wait..."

Dim H(30000), AC(30000), DEN(30000), Gr(30000)
Dim Vcl(30000), Vp(30000), Vs(30000)
Dim Igr(30000)
Dim Ed(30000), ud(30000), Es(30000), us(30000)
Dim Pp(30000), Pi(30000), Pe(30000), Sz(30000), Sh1(30000), Sh2(30000), S(30000)
Dim C(30000), f(30000), Pf(30000), Pc(30000), K(30000), St(30000), UCS(30000)

Open App.Path + "\" + "A井.xls" For Input As #1
Open App.Path + "\" + "计算结果.xls" For Output As #2

i = 1
N = 0

Do While Not EOF(1) '判断1号文件是否结束,若不结束则继续。
Input #1, r1, r2, r3, r4, r5
H(i) = r1
AC(i) = r2
DEN(i) = r3
Gr(i) = r4
Pp(i) = r5

i = i + 1
N = N + 1
Loop

Close #1

输入超出文件尾(错误 62)
不能对文件尾位置后进行读入。此错误有以下原因和解决方法:
1)Input # 或 Line Input # 语句要到已读完文件或空文件中读入数据。
在 Input # 语句之前直接使用 EOF 函数来测试是否处在文件的结尾。
2)在以 Binary 访问所打开的文件上使用 EOF 函数。

EOF 只能用在顺序 Input 访问所打开的文件上。在 Binary 访问所打开的文件上使用 Seek 和 Loc。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-05-21
是你的 A井.xls内容不够读取,所以超出了文件尾
你每次读取A井.xls 5行,所以你的文件行数必须是5的倍数,比如是10行,这样才可以正常被读取完成,如果是11行的话,读到第三次会导致r1可以读取,后面的r2到r5没有数据读取,所以就超过文件尾
PS:文件中的空格也算一行,如果你有10行数据,假如最后一行是空行也会出现这个情况,所以为了避免这个情况,要把最后一行的空行删除掉本回答被网友采纳
第2个回答  2013-05-21
可能存在这样的情况:在判断文件时,没有到达文件结尾,而在你的接下来的操作时,就达到了文件结尾,但你还让程序进行文件读写。
打个比方(100为到达文件结尾):当前文件到达98的位置,你的代码还要读写下面三个内容,于是第99个内容可读写,第100个内容可读写,第101个内容VB提示超出尾文件
第3个回答  2013-05-21
有这样一种情况:文件没有结束,意味着可以进入循环,但剩下的内容不足你将读取的长度,你在循环体中读取时就出错了!

加入出错控制,在input时如果出错,就不计入数组,赋值也结束了,如下
on error resume next
Input #1, r1, r2, r3, r4, r5
if err.count>0 then exit do
第4个回答  2013-05-21
我第一次看见文件读写方式访问excel文件。

建议你参考一下有关excel的专有读写方法吧。

参考文件

http://zhidao.baidu.com/question/168069232?&oldq=1
相似回答