vb6calculated-columnsvsflexgrid

Fill one column of vsfgird according to another column


I have a vsflexgrid that fill by data like this :

ID - Name - Rate - Gift
100- jack -  2   -   
101- Mark -  6   -   
102- peter - 10  -   

i want to calculate multiple rate for each row and fill gift column by that . for example : if rate = 0 and rate <5 then Gift=0

i use this code but apply for only first row: Gift columns filled according to the column Rate

 dim i,Numrate , Numgift as integer
    For i = 1 To VSF(3).Rows - 1
    Numrate = VSF(3).TextMatrix(i, 3)
    Numgift = VSF(3).TextMatrix(i, 4)
    If Numrate = 0 And Numrate < 5 Then
    Numgift = 0
    ElseIf Numrate >= 5 And Numrate < 9 Then
    Numgift = 1
    ElseIf Numrate >= 10 And Numrate < 14 Then
    Numgift = 1 = 2
    ElseIf Numrate >= 15 And Numrate < 19 Then
    Numgift = 1 = 3
    ElseIf Numrate >= 20 And Numrate < 24 Then
    Numgift = 1 = 4
    End If
    Next i

result should be :

ID - Name - Rate - Gift
100- jack -  2   -   0 
101- Mark -  6   -   1
102- peter - 10  -   2

Solution

  • Dim i As Integer, NumRate As Integer, Numgift As Integer
    For i = 1 To VSF(3).Rows - 1
        Numrate = VSF(3).TextMatrix(i, 3)
        Select Case Numrate
            Case 0 To 5
                Numgift = 0
            Case 6 To 9
                Numgift = 1
            Case 10 To 14
                Numgift = 2
            Case 15 To 19
                Numgift = 3
            Case 20 To 24
                Numgift = 4
        End Select
        VSF(3).TextMatrix(i, 4) = Numgift
    Next i