一段代码,就不具体写了,
定义一个数组好比a(1 to 3),三个元素分别是2,5,9, 
下面是代码的一部分
myubound = ubound(a)
mylbound = lbound(a)
centernum = (myubound + mylbound) \ 2  '这里centernum = 5
接着又出现了 a(centernum),我就晕了,这不是数组越界了么,请高手指点(代码是从正版教材上抄的)

解决方案 »

  1.   

    执行后
    myubound =3 
    mylbound =1
    centernum = (1+3)\2 =2a(centernum)= 5那个centernum = 5的注释是错误的。
      

  2.   


    myubound = ubound(a)         '取数组上界   myubound =3 
    mylbound = lbound(a)         '取数组下届    mylbound =1
    centernum = (myubound + mylbound) \ 2  '这里centernum = 2 
    a(centernum)=5                         ’a(2)=5  
      

  3.   

    Option ExplicitPrivate Sub Command1_Click()
            
            Dim a(1 To 3) As Long
            Dim myubound As Long, mylbound As Long, centernum As Long
            
            a(1) = 2: a(2) = 5: a(3) = 9
            
            myubound = UBound(a)
            mylbound = LBound(a)
            centernum = (myubound + mylbound) \ 2  '这里centernum = 5
            
            Debug.Print myubound, mylbound, centernum '结果为3,1,2
            End Sub