首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

vsflexgrid新增行的問題,该怎么处理

2013-01-01 
vsflexgrid新增行的問題我想在当前行指定的单元格都不为空的条件下增加新行,当新行被填充后需再增加新行就

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

热点排行