vsflexgrid新增行的問題
我想在当前行指定的单元格都不为空的条件下增加新行,当新行被填充后需再增加新行就再判断是否所有的单元格是否为空,如不为空就可再增加新行。如代码:
Dim i As Integer
For i = 1 To fg.Rows - 1
If fg.TextMatrix(i, 0) = "" Then
MsgBox fg.TextMatrix(0, 0) & "不能為空!"
Exit For
ElseIf fg.TextMatrix(i, 1) = "" Then
MsgBox fg.TextMatrix(0, 1) & "不能為空!"
Exit For
ElseIf fg.TextMatrix(i, 2) = "" Then
MsgBox fg.TextMatrix(0, 2) & "不能為空!"
Exit For
ElseIf fg.TextMatrix(i, 5) = "" Then
MsgBox fg.TextMatrix(0, 5) & "不能為空!"
Exit For
Else
fg.Rows = fg.Rows + 1
End If
Next
但是上面代码只有执行第一行的结果才是我想要的
问题是:到加第二行的时候只有第一个判断跳出来,不理会就可以加第三行了。我需要的是所有新增的行都如第一行判断后无误再增加新行.
[解决办法]
代码就不写了
你的问题出在新增行的判断位置放错了 应放在循环外
还需要加一个变量 用于记录循环判断中发现了空栏
[解决办法]
我觉得用二个循环应该能解决你的问题了。
Dim I As Integer, J As Integer
For I = 0 To fg.Rows - 1
For J = I To fg.Cols - 1
If fg.TextMatrix(I, J) = "" Then
MsgBox I & "行," & J & "列不能为空!", vbInformation
Exit Sub
End If
Next
Next
fg.Rows=fg.Rows+1