模块
Public Type SD
    sj() As Byte
    fn As String
    dn As String
    sf As String
End Typeform1Dim ss() As SD
Private Sub Command1_Click()For i = 0 To 3
ReDim ss(i)
ss(i).fn = CStr(i)
NextEnd SubPrivate Sub Command2_Click()
For i = 0 To 3
Debug.Print ss(i).fn    '问题点
Next
End Sub
为什么结构数组只记录最后一个值???  有没有其它方法可以解决

解决方案 »

  1.   

    For i = 0 To 3
    'ReDim ss(i)   '这句去掉
    ss(i).fn = CStr(i)
    Next
      

  2.   

    要redim又想保留里面的数据,请用redim preserve
      

  3.   

    Private Sub Command1_Click()
    ReDim ss(3)
    For i = 0 To 3ss(i).fn = CStr(i)
    NextEnd Sub
      

  4.   

    代码书写好一点,是不是看着舒服?Dim ss() As SDPrivate Sub Command1_Click()
        ReDim ss(i)
        
        For i = 0 To 3
            ss(i).fn = CStr(i)
        Next
        
    End SubPrivate Sub Command2_Click()
        For i = 0 To 3
            Debug.Print ss(i).fn    '问题点
        Next
        
    End Sub