Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 1656|回复: 8

下标越界

[复制链接]
发表于 2017-4-7 17:21 | 显示全部楼层 |阅读模式
Sub dd()
arr = [a1].CurrentRegion
ReDim brr(1 To 10001)
For i = 0 To UBound(arr)
     s = arr(i)
   If InStr(s, ",") Then
      b = Split(s, ",")
      For j = 0 To UBound(b)
         n = n + 1
         brr(n) = b(j)
      Next
    Else
       n = n + 1
       brr(n) = s
    End If
Next
[b1].Resize(UBound(brr)) = brr
End Sub

一直提示下表越界,请教高手哪里越界了?
发表于 2017-4-7 17:27 | 显示全部楼层
本帖最后由 sandorn 于 2017-4-7 17:29 编辑

所有单元格赋值给数组的,不管是怎么形状的单元格,所得的数组都是二维数组。我的理解是  一维数组下标从0开始,就是一行数据,横排的;


二维数组下标1开始

回复

使用道具 举报

 楼主| 发表于 2017-4-7 17:35 | 显示全部楼层
For i = 1 To UBound(arr) 改成1 还是提示下标越界
回复

使用道具 举报

发表于 2017-4-7 17:38 | 显示全部楼层
emmahhm 发表于 2017-4-7 17:35
For i = 1 To UBound(arr) 改成1 还是提示下标越界

点一下重新设置,再运行程序试试
回复

使用道具 举报

 楼主| 发表于 2017-4-7 17:42 | 显示全部楼层
不行啊
回复

使用道具 举报

 楼主| 发表于 2017-4-7 17:43 | 显示全部楼层
或者是代码哪里是错的?
回复

使用道具 举报

发表于 2017-4-7 17:54 | 显示全部楼层
本帖最后由 raymanrrr 于 2017-4-7 18:07 编辑
sandorn 发表于 2017-4-7 17:27
所有单元格赋值给数组的,不管是怎么形状的单元格,所得的数组都是二维数组。我的理解是  一维数组下标从0 ...

基本百分百的编程语言的数组下标都是从0开始的,vb也不例外,只是把单元格写入数组的方法得到的下标是从1开始,和一维二维没有任何关系

楼主的问题是使用一个下标去索引二维数组   for 需要从1开始    s = arr(i) 需要使用两个下标

代码我也没细看,顺带吐个槽……我寻思着arr是array的简写,arr brr crr的命名方法不知道是何人传播开的,点美感都没有

至于横排的单元格还是二维数组,只不过是(1,1) (1,2) (1,3)...(1,n) 的形式

再给个提示就是如果直接运行会提示下标越界,单步执行会到越界那行才提示,下次哪里再下标越界楼主就知道怎么看了吧




回复

使用道具 举报

发表于 2017-4-7 18:23 | 显示全部楼层
上传附件,还有你的BRR边界是否低于arr的边界
回复

使用道具 举报

发表于 2017-4-10 09:35 | 显示全部楼层
arr(1,1)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2025-8-15 21:58 , Processed in 0.479351 second(s), 6 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表