我需要实现的是在datagrid中从用户选定的一行取出连续40个单元格的值,然后在时间相隔5分钟处再连续取40个值,总共取7组,但是以下的循环有下列问题,内层j循环执行无错误,外层循环一运行总是该句
DataGrid1.Book = DataGrid1.Book + 1
提示书签无效,不知何故?高手帮帮忙,谢谢!
For i = 0 To 6
For j = 0 To 39
array1(i, j) = DataGrid1.Columns(3).CellText(DataGrid1.Book + j)
Text1.Text = Text1.Text & vbCr & array1(i, j)
selectime = CDate(DataGrid1.Columns(1).CellText(DataGrid1.Book))
Next j
Do
DataGrid1.Book = DataGrid1.Book + 1
addselectime = CDate(DataGrid1.Columns(1).CellText(DataGrid1.Book))
If addselectime = selectime + CDate("00:05:00") Then
Exit Do
End If
Loop
Text2.Text = DataGrid1.Columns(2).CellText(DataGrid1.Book)
Text3.Text = DataGrid1.Columns(3).CellText(DataGrid1.Book)
Next i
DataGrid1.Book = DataGrid1.Book + 1
提示书签无效,不知何故?高手帮帮忙,谢谢!
For i = 0 To 6
For j = 0 To 39
array1(i, j) = DataGrid1.Columns(3).CellText(DataGrid1.Book + j)
Text1.Text = Text1.Text & vbCr & array1(i, j)
selectime = CDate(DataGrid1.Columns(1).CellText(DataGrid1.Book))
Next j
Do
DataGrid1.Book = DataGrid1.Book + 1
addselectime = CDate(DataGrid1.Columns(1).CellText(DataGrid1.Book))
If addselectime = selectime + CDate("00:05:00") Then
Exit Do
End If
Loop
Text2.Text = DataGrid1.Columns(2).CellText(DataGrid1.Book)
Text3.Text = DataGrid1.Columns(3).CellText(DataGrid1.Book)
Next i
DataGrid1.Book = DataGrid1.Book + 1
addselectime = CDate(DataGrid1.Columns(1).CellText(DataGrid1.Book))
If addselectime = selectime + CDate("00:05:00") Then
Exit Do
End If
Loop改成 Do While True DataGrid1.Book = DataGrid1.Book + 1
addselectime = CDate(DataGrid1.Columns(1).CellText(DataGrid1.Book)) If addselectime = DateAdd( "n", 5, selectime) Then
Exit Do
End If
Loop
addselectime = CDate(DataGrid1.Columns(1).CellText(DataGrid1.Book)) Do While True
If addselectime = DateAdd( "n", 5, selectime) Then
Exit Do
End If
Loop
因为你始终在循环里 DataGrid1.Book = DataGrid1.Book + 1
最后 DataGrid1.Book > DataGrid1.RowCount-1
就出错了.我不是很明白,你的 DataGrid1.Book = DataGrid1.Book + 1
addselectime = CDate(DataGrid1.Columns(1).CellText(DataGrid1.Book))是个什么意思.先改成这个样子.你看看是不是还是有问题.
你的这个错误,是个逻辑错误,建议你好好看看 VB 的书.
DataGrid1.recordset.movenext '自动往下滚,
我的datagrid中有四个字段,我要实现的就是在用户选定一行后,从这一行开始取出其中一个字段的40个值,然后在记录中寻找时间增加5分钟的行,由此行再往下取出四十个值。一共找7组。addselectime = CDate(DataGrid1.Columns(1).CellText(DataGrid1.Book))提取当前时间字段。
addselectime = CDate(DataGrid1.Columns(1).CellText(DataGrid1.Book))
If addselectime = DateAdd( "n", 5, selectime) Then
Exit Do
End If Loop
DataGrid1.Book = DataGrid1.Book + 1
上,如果你实在想得到一个这样的结果,你可以先把 DataGrid1.Book 的值用一个变量存起来。这样就不会出错了。
DO
LOOP
循环少条件。