1.最近有个项目要用VB做个界面,BUT好久不用,全忘光了
走了个小测试,目的就是从一个全是数字的字符串str里按照没4个数字截取的方式,把str中的数字存储到一个一维数组里,
但是DUBUG的时候总是提示type mismatch,请问怎么解决,如下:
Private Sub Command1_Click()
    Dim str As String
    Dim i As Integer
    Dim a(2) As Long
    
    str = "1000 5235 1203"
    
    For i = 0 To 2
        
        a(i) = CLng(Mid(Split(str, " "), i * 4 + 1, 4))
        txt(i).Text = a(i)
    Next i
End Sub2.VB怎么初始化数组?
比如定义了AA(49) As integer,50个不同的整数,现在想给AA赋值了,
难道要AA(0)=...  AA(1)=...这样累死?
二维数组怎么初始化?
找了好几本书,关于数组方面都是一带而过,两句话就说完了
基本都只有说dim aa() As integer
Dim bb(x,y) As integer
然后再来个redim aa(z)就完了,重要的东西完全不提!急用!谢谢!!!

解决方案 »

  1.   

    1
    Private Sub Command1_Click()
      Dim str As String
      Dim i As Integer
      Dim a(2) As Long
       
      str = "1000 5235 1203"
       
      For i = 0 To 2
       
      a(i) = Mid(str, i * 5 + 1, 4)
      txt(i).Text = a(i)
      Next i
    End Sub2
    AA(49) As integer 有规律的可以用循环赋值,没有规律的只能一个一个赋值
    Dim bb(x,y) As integer二维数组也是一样。想象c一样赋值,可以考虑:
    Private Sub Command1_Click()
    Dim bb
    bb = Array(1, 2, 3, 4, 5, 6)
    For i = 0 To UBound(bb)
       Print bb(i)
    NextEnd Sub
      

  2.   


    Private Sub Command1_Click()
      Dim str As String
      Dim i As Integer
      Dim a() As String
        
      str = "1000 5235 1203"
      a = Split(str, " ")
      For i = LBound(a) To UBound(a)
        Debug.Print a(i)
      Next i
    '
    '  For i = 0 To 2
    '
    '  a(i) = CLng(Mid(Split(str, " "), i * 4 + 1, 4))
    '  txt(i).Text = a(i)
    '  Next i
    End Sub
      

  3.   

    二维数组可考虑这样赋值:
    Dim a
    a = Array(Array(15, 27, 30, 56, 78, 45, 37, 12, 90), Array(18, 26, 34, 23, 56, 32, 14, 7, 8))
    For i = 0 To UBound(a)
        For j = 0 To UBound(a(i))
            Debug.Print a(i)(j)
        Next
    Next
    要注意的是a不是VB6的二维数组,是数组元素是数组的数组,不过有了这个之后再给二维数组赋值就不难了。
    还有一招,利用Excel的公式写赋值代码,特别是数组元素很多时,太爽了!