for j=0 to MSFlexGrid1.itemcount-1 if j<>i then MSFlexGrid1.RemoveItem j next j
楼上的代码不正确,因为在删除I前面的行的时候,最初的I行是会往前移的!方法一:先把要保留的I行的所有数据保存到数组里面,然后清空Msflexgrid的所有数据,然后再把数组中的东西重新写回Msflexgrid,代码如下: Dim xx() As String ReDim xx(MSFlexGrid1.Cols)
Dim yy As Long For yy = 0 To MSFlexGrid1.Cols - 1 xx(yy) = MSFlexGrid1.TextMatrix(i, yy) Next yy
MSFlexGrid1.Rows = 2 MSFlexGrid1.Clear For yy = 0 To MSFlexGrid1.Cols - 1 MSFlexGrid1.TextMatrix(i, yy) = xx(yy) Next yy方法二:通过循环直接从Msflexgrid删除除要保留的行以外的其他行,代码如下: Dim xx As Long xx = MSFlexGrid1.Rows - 1 While xx <> 0 If xx = i Then xx = xx - 1 End If MSFlexGrid1.RemoveItem xx xx = xx - 1 Wend
Dim xx As Long,j as long xx = MSFlexGrid1.Rows - 1 for j=i+1 to xx MSFlexGrid1.RemoveItem j next j for j=0 to i-1 MSFlexGrid1.RemoveItem 0 next j
dim Temp Temp =MSFlexGrid1.Text(i) MSFlexGrid1.clear MSFlexGrid1.Add Temp
for j = MSFlexGrid1.Rows-1 to 0 step -1 if j<>i then MSFlexGrid1.RemoveItem j next
if j<>i then MSFlexGrid1.RemoveItem j
next j
ReDim xx(MSFlexGrid1.Cols)
Dim yy As Long
For yy = 0 To MSFlexGrid1.Cols - 1
xx(yy) = MSFlexGrid1.TextMatrix(i, yy)
Next yy
MSFlexGrid1.Rows = 2
MSFlexGrid1.Clear
For yy = 0 To MSFlexGrid1.Cols - 1
MSFlexGrid1.TextMatrix(i, yy) = xx(yy)
Next yy方法二:通过循环直接从Msflexgrid删除除要保留的行以外的其他行,代码如下: Dim xx As Long
xx = MSFlexGrid1.Rows - 1
While xx <> 0
If xx = i Then
xx = xx - 1
End If
MSFlexGrid1.RemoveItem xx
xx = xx - 1
Wend
xx = MSFlexGrid1.Rows - 1
for j=i+1 to xx
MSFlexGrid1.RemoveItem j
next j
for j=0 to i-1
MSFlexGrid1.RemoveItem 0
next j
Temp =MSFlexGrid1.Text(i)
MSFlexGrid1.clear
MSFlexGrid1.Add Temp
if j<>i then MSFlexGrid1.RemoveItem j
next