我现在想把 MSHFlexGrid控件中的一列数据赋值到一个数组中(A(),B(),C()),并且把空值剔除,生成新的数组(AA(),BB(),CC())
Dim i As Integer, J As Integer, Num As Integer
Dim A() As String,AA() As String
Dim B() As String,BB() As String
Dim C() As String,CC() As String
Dim  m_Num as Integer    '新数组的有效数据的条数
 Num = MSHFlexGrid1.Rows - 1
ReDim A(Num) As String
ReDim B(Num) As String
 ReDim C(Num) As String
 
 For i = 1 To MSHFlexGrid1.Rows - 1
      If MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 2) = "√" Then
         A(i) = MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 0)
         B(i) = MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 3)
         C(i) = MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 4)
       Else
         A(i) = ""
         B(i) = ""
         C(i) = ""
       End If    Next
 For i = 1 To MSHFlexGrid1.Rows - 1
       If A(i) <> "" Then
          J = J + 1
          AA(J) = A(i)
          BB(J) = B(i)
          CC(J) = C(i)
        End If
        m_Num = J            '统计有m_Num数据是非空数据
    Next大家帮我看看代码错误在那里?怎么都得不到想要的结果?恳请达人帮忙!万分感激!!

解决方案 »

  1.   

    刚才找到错误的原因啦。但去除空值的新数组还是有问题。大家帮我看看是怎么回事?
    应该将MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 0)改为
    MSHFlexGrid1.TextMatrix(i, 0)

    Dim i As Integer, J As Integer, Num As Integer
    Dim A() As String,AA() As String
    Dim B() As String,BB() As String
    Dim C() As String,CC() As String
    Dim m_Num as Integer '新数组的有效数据的条数
     Num = MSHFlexGrid1.Rows - 1
    ReDim A(Num) As String
    ReDim B(Num) As String
     ReDim C(Num) As String
      
     For i = 1 To MSHFlexGrid1.Rows - 1
      If MSHFlexGrid1.TextMatrix(i, 2) = "√" Then
      A(i) = MSHFlexGrid1.TextMatrix(i, 0)
      B(i) = MSHFlexGrid1.TextMatrix(i, 3)
      C(i) = MSHFlexGrid1.TextMatrix(i, 4)
      Else
      A(i) = ""
      B(i) = ""
      C(i) = ""
      End If  Next
     For i = 1 To MSHFlexGrid1.Rows - 1
      If A(i) <> "" Then
      J = J + 1
      AA(J) = A(i)
      BB(J) = B(i)
      CC(J) = C(i)
      End If
      m_Num = J '统计有m_Num数据是非空数据
      Next去除空值的新数组怎么得到,达人们帮帮忙!
      

  2.   

    重新用redim 定义一下