回 帖 发 新 帖 刷新版面

主题:下标越界问题,高手帮帮忙

Do While Not EOF(1)
  Line Input #1, a
  s = Replace(a, vbTab, " ")
  c = Split(s, " ")
  ReDim f(1, UBound(c))
  For n = 0 To UBound(c)
     f(m, n) = c(n)
  Next n
  m = m + 1
Loop

这里为什么在我加了一个外层循环f(m,n)=c(n)就会出现下标越界,但是去掉外层循环就不会下标越界,高手们帮我看看,谢谢你们了

回复列表 (共4个回复)

沙发

因为
m = m + 1
被多次执行,超过1,就会出现
f(2,……)
当然下标越界

板凳

Do While Not EOF(1)
Line Input #1, a
s = Replace(a, vbTab, " ")
c = Split(s, " ")
ReDim f(m, UBound(c))
For n = 0 To UBound(c)
f(m, n) = c(n)
Next n
m = m + 1
Loop

我把程序这里改了ReDim f(m, UBound(c)) ,确实不报错了,但是为什么f(m,n)只有数据的最后一行,前面的数据都没,纠结啊,帅哥再帮我看看

3 楼

Do While Not EOF(1)
  Line Input #1, a
  s = Replace(a, vbTab, " ")
  c = Split(s, " ")
  ReDim f(m, UBound(c))
  For n = 0 To UBound(c)
    f(m, n) = c(n)
  Next n
  m = m + 1 
Loop
上面那个程序没法好  看这个了

4 楼

Do While Not EOF(1)
  Line Input #1, a
  s = Replace(a, vbTab, " ")
  c = Split(s, " ")
  ReDim f(m, UBound(c))
  For n = 0 To UBound(c)
    f(m, n) = c(n)
  Next n
  m = m + 1
Loop
 我把程序这里改了ReDim f(m, UBound(c)) ,确实不报错了,但是为什么f(m,n)只有数据的最后一行,前面的数据都没,纠结啊,帅哥再帮我看

我来回复

您尚未登录,请登录后再回复。点此登录或注册