数组index下标的详细说明

 

1 数组严格定义的重要性

  • Dim arr1(3)
  • Dim arr1( 1 to 3)
  • Option base 1 等等的意义

 

2 数组的index下标默认值

  • (1)数组的index下标应该是从0开始的,比如split生成的,还有未指定index下标的
  •          如 dim arr1(5)
  • (2)但是数组的index下标也有从1开始的情况,比如range 赋值的变量,默认下标从1开始
  •         如 arr2=range("b1:d5")
  • (3)数组的index下标受控制的情况
  •        模块最前面 option base  -1
  • (4)数组index下标最好自己定义好
  •       如  dim arr3(1 to 5)

 

3 使用option base 看数组声明模糊时差别

REM  代码开头
Option Base 1  '只能写在模块开头,不能写在过程内


Rem  你尝试修改 option base 1 或0 效果完全不同
rem  option base 0 时 dim arr1(3) 是4个元素
rem  option base 1 时 dim arr1(3) 是3个元素   



Sub tes3001()

Dim arr1(3)

arr1(1) = 111
arr1(2) = 222
arr1(3) = 333

Range("a1:c1") = arr1

Debug.Print Range("a1")
Debug.Print Range("b1")
Debug.Print Range("c1")



End Sub
REM 代码结束

 

 

4 如果数组来源,是EXCEL赋值过来的

index下标需要以excel的为准,也就是x和y的下标都从1开始,而不是默认为0

 

Sub test001()

Dim arr1(3) '如果已经声明为数组名了,以后就不能给数组赋值
Dim arr2    '相当于dim arr2 as variant



'arr1 = Range("a1:c1")   '不能给数组赋值? 只能给数组里的元素赋值?
arr1(0) = Range("a1")
arr2 = Range("a1:c1")   '可以给变量赋值,赋予这个变量整个数组
arr3 = Range("c1:d4")


Debug.Print "arr1(0)=" & arr1(0)
Debug.Print "arr2(1,1)=" & arr2(1, 1)    rem 输入arr2(0,0 )就报错
Debug.Print "arr3(1,1)=" & arr3(1, 1)


End Sub

 

5 如果数组下标也可以为负数,不过index必须是连续的

Sub tes3001()

Dim arr1(-1 To 2)

arr1(-1) = -111
arr1(0) = 0
arr1(1) = 111
arr1(2) = 222



Range("a1:c1") = arr1   '取数组元素不能取完的时候,只取前面的部分

Debug.Print Range("a1")
Debug.Print Range("b1")
Debug.Print Range("c1")


End Sub

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值