总是出现下标越界问题?(高手请帮忙看看)
我想实现把MSFlexGrid的第二列相同的产品名进行数量的相加,并把第二次出现相同的产品名删除。可我每次运行时都出现下标越界的错误,我不知道是怎么回事?请高手帮忙看看?我原先想用Sql语句实现的可就是不能实现合并?所以想用程序来实现?
With Grid2
'外层循环
For i = 1 To .Rows - 1
findstr = .TextMatrix(i, 2)
'内层循环
For j = i + 1 To .Rows - 1
If findstr = .TextMatrix(j, 2) Then
.TextMatrix(i, 5) = Val(.TextMatrix(i, 5)) + Val(.TextMatrix(j, 5)) '单台量累加
.TextMatrix(j, 18) = "R" '删除现同行
End If
Next j Next i ' 删除多余项
For l = 1 To .Rows - 1
If .TextMatrix(l, 18) = "R" Then '提示这个地方下标越界,为第53行错误
.RemoveItem l
End If
Next l
我想实现把MSFlexGrid的第二列相同的产品名进行数量的相加,并把第二次出现相同的产品名删除。可我每次运行时都出现下标越界的错误,我不知道是怎么回事?请高手帮忙看看?我原先想用Sql语句实现的可就是不能实现合并?所以想用程序来实现?
With Grid2
'外层循环
For i = 1 To .Rows - 1
findstr = .TextMatrix(i, 2)
'内层循环
For j = i + 1 To .Rows - 1
If findstr = .TextMatrix(j, 2) Then
.TextMatrix(i, 5) = Val(.TextMatrix(i, 5)) + Val(.TextMatrix(j, 5)) '单台量累加
.TextMatrix(j, 18) = "R" '删除现同行
End If
Next j Next i ' 删除多余项
For l = 1 To .Rows - 1
If .TextMatrix(l, 18) = "R" Then '提示这个地方下标越界,为第53行错误
.RemoveItem l
End If
Next l
dim lngCount as Long
lngCount = .Rows - 1 '用一个变量记住Grid的行数' 删除多余项
For l = 1 To lngCount
If .TextMatrix(l, 18) = "R" Then '提示这个地方下标越界,为第53行错误
.RemoveItem l
End If
Next l
'外层循环
For i = 1 To .Rows - 1
findstr = .TextMatrix(i, 2)
'内层循环
For j = i + 1 To .Rows - 1
If findstr = .TextMatrix(j, 2) Then
.TextMatrix(i, 5) = Val(.TextMatrix(i, 5)) + Val(.TextMatrix(j, 5)) '单台量累加
.TextMatrix(j, 18) = "R" '删除现同行
End If
Next j Next i ' 删除多余项
lngCount = .Rows - 1 '用一个变量记住Grid的行数
For l = 1 To lngCount
If .TextMatrix(l, 18) = "R" Then
.RemoveItem l
End If
Next l语句还是If .TextMatrix(l, 18) = "R" Then这句话错误,不知道是怎么回事?
'去除vfgDetail中的空行
Public Sub RemoveNullRow()
Dim i As Integer
Dim i2 As Integer
With vfgDetail
If .Rows < 2 Then
Exit Sub
End If
i2 = 1
For i = 1 To .Rows - 1
If .TextMatrix(i2, 1) = "" Then
.RemoveItem i2
i2 = i2 - 1
End If
i2 = i2 + 1
Next
End With
End Sub