看了“求yyy里VarArr的最大值和最小值该如何做,谢谢!!!”也请教各位高手
如:Private Type HXCS 
    VarName As String 
    VarArr() As Long 
End Type 
Dim yy() As HXCS 
 
我要向动态给出数组大小该如何做,谢谢!!!

解决方案 »

  1.   

    Private Type HXCS
        VarName As String
        VarArr() As Long
    End TypePrivate Sub Form_Load()
     Dim yy() As HXCS
     Dim i
     For i = 0 To 10
     ReDim Preserve yy(i) '改变动态数组的上界
     ReDim Preserve yy(i).VarArr(2) '改变动态数组的上界
    yy(i).VarName = "A" & i '赋值
    yy(i).VarArr(0) = 10 * i
    yy(i).VarArr(1) = 20 * i
    yy(i).VarArr(2) = 30 * i
    Next
     For i = 0 To 10
     For j = 0 To 2
    Debug.Print yy(i).VarName
    Debug.Print yy(i).VarArr(j)
    Next
    Next
    End Sub
      

  2.   

    自定义类型(结构)里的动态数组在使用前必须重新定义;如果定义了结构数组,则结构数组里动态数组必须分别定义才能使用。
    Private Type HXCS
        VarName As String
        VarArr() As Long
    End TypePrivate Sub Command1_Click()
       Dim yy As HXCS '使用结构
       ReDim yy.VarArr(100) '定义结构中的动态数组
       yy.VarArr(99) = 100
       Debug.Print yy.VarArr(99)
         
    End SubPrivate Sub Command2_Click()
       Dim yy(2) As HXCS '使用结构数组
       ReDim yy(0).VarArr(5) '要想使用结构数组中的动态数组要分别重新定义
       ReDim yy(1).VarArr(3) '要想使用结构数组中的动态数组要分别重新定义
       ReDim yy(2).VarArr(6) '要想使用结构数组中的动态数组要分别重新定义
       yy(0).VarArr(2) = 50
       Debug.Print yy(0).VarArr(2)'如果结构数组中的动态数组大小一样时,可用循环重新定义End Sub