Dim z1()
   Dim z2()
   ReDim z1(vsfmtcjl.Rows)
   ReDim z2(vsfmtcjl.Rows)
   Dim flag As Boolean
   flag = True
   Dim p, j As Integer
   vsfmtcjl.Col = 3
   For p = 1 To vsfmtcjl.Rows - 1
      vsfmtcjl.Row = p
      If flag = True Then
         If vsfmtcjl.Text > 30 Then
            z1(p - 1) = Trim(vsfmtcjl.Text)
            flag = False
         End If
      Else
         If vsfmtcjl.Text < 30 Then
            z2(p - 1) = Trim(vsfmtcjl.Text)
            flag = True
         End If
      End If
    Nextvsfmtcjl里面的值是:36.4 27.5 35.94 27 25.5 35.5
问题: 当读到36.4的时候,第一个if语句把36.4放进了z1(0)里面,这时p=1,z2(0)=""空字符串,再循环读取27.5的时候,p=2,z1(1)=""空字符串,z2(1)=27.5
这样看每循环一次,两个数组中的一个肯定会产了一个""空,需要请教的是如何改这段代码,让每次循环不产生""空字符串.

解决方案 »

  1.   

    你一个p控制两个数组了
    用两个变量,分别控制两个数组Dim z1()
       Dim z2()
       ReDim z1(vsfmtcjl.Rows)
       ReDim z2(vsfmtcjl.Rows)
       Dim flag As Boolean
       flag = True
       Dim p, j As Integer
       vsfmtcjl.Col = 3
       Dim i as Interger
       Dim j as Interger
       i=0
       j=0
       For p = 1 To vsfmtcjl.Rows - 1
          vsfmtcjl.Row = p
          If flag = True Then
             If vsfmtcjl.Text > 30 Then
                z1(i) = Trim(vsfmtcjl.Text)
                i=i+1
                flag = False
             End If
          Else
             If vsfmtcjl.Text < 30 Then
                z2(j) = Trim(vsfmtcjl.Text)
                j=j+1
                flag = True
             End If
          End If
        Next