For i = 1 To 5
            FieldA = ""
            FieldB = ""
            For j = i To MSHFlexGrid1.Rows - 1
            FieldA = FieldA & MSHFlexGrid1.TextMatrix(j, 2)
            FieldB = FieldB & MSHFlexGrid1.TextMatrix(j, 3)
            Next j
            MSHFlexGrid2.TextMatrix(i, 2) = FieldA
            MSHFlexGrid2.TextMatrix(i, 3) = FieldB
            MSHFlexGrid2.AddItem ""
             DoEvents
             Next     上面是字符串变量存储后,再次添加到mshflexgrid2里,问题是共5次循环添加,但是5次运行结果为什么总是相同内容呢

解决方案 »

  1.   

    可能 MSHFlexGrid1 的 1~5 行 2~3 列都为空
      

  2.   


    Option ExplicitPrivate Sub Command1_Click()
        Dim i As Long, j As Long
        Dim FieldA As String, FieldB As String
        For i = 1 To 5
            FieldA = ""
            FieldB = ""
            For j = i To MSHFlexGrid1.Rows - 1
                FieldA = FieldA & MSHFlexGrid1.TextMatrix(j, 2)
                FieldB = FieldB & MSHFlexGrid1.TextMatrix(j, 3)
            Next j
            MSHFlexGrid2.TextMatrix(i, 2) = FieldA
            MSHFlexGrid2.TextMatrix(i, 3) = FieldB
            MSHFlexGrid2.AddItem ""
            DoEvents
        Next
    End SubPrivate Sub Form_Load()
        Dim i As Long
        MSHFlexGrid1.Cols = 4
        MSHFlexGrid1.Rows = 11
        For i = 6 To 10
            MSHFlexGrid1.TextMatrix(i, 2) = i
            MSHFlexGrid1.TextMatrix(i, 3) = Chr(vbKeyA + i - 1)
        Next
        
        MSHFlexGrid2.Cols = 4
    End Sub
      

  3.   

    不不, 结果不是空的. 我是说, 字符串变量FieldA = "" 后,添加到FieldA, 然后添加到mshflexgrid2里。
      第二次循环时,第一次存储过的数据删除FieldA = "",重新赋给新的字符串。
      但是,结果第二次怎么总是第一次循环的字符串了。 FieldA = ""这样也没用了。   问题在于哪里?
      

  4.   

    如果是1到5行为空,那你的代码实际上就等于如下的代码    For i = 1 To 5
            FieldA = ""
            FieldB = ""
            For j = 6 To MSHFlexGrid1.Rows - 1
                FieldA = FieldA & MSHFlexGrid1.TextMatrix(j, 2)
                FieldB = FieldB & MSHFlexGrid1.TextMatrix(j, 3)
            Next j
            MSHFlexGrid2.TextMatrix(i, 2) = FieldA
            MSHFlexGrid2.TextMatrix(i, 3) = FieldB
            MSHFlexGrid2.AddItem ""
            DoEvents
        Next这样子当然是一样的
      

  5.   

    看错了点东西,原来有两个grid,不过道理应该没错
      

  6.   

    请勿私下回复:http://community.csdn.net/IndexPage/SmartQuestion.aspx#noprivate
    请明示解决结果:http://community.csdn.net/IndexPage/SmartQuestion.aspx#followup