上移行和下移行,一次移很多行,为什么速度那么慢,要等好长时间,而直接用系统里的表上移和下移速度却非常快?
With Tables(e.form.name & "_Table1")
Select Case e.Sender.Name
Case "ButtonMoveUp" '上移行
.StopRedraw
Dim i As Integer
Dim i1 As Integer = .TopRow '最上行位置
Dim i2 As Integer = .BottomRow '最末行位置
If i1 >= 1 Then '如不判断,最上一行会往下跑
For i = i1 To i2
.Rows(i).Move(i-1)
Next
.Select(i1-1,.Cols(.colsel).index,i2-1,.Cols(.colsel).index)
Else
.Select(i1,.Cols(.colsel).index,i2,.Cols(.colsel).index)
End If
.ResumeRedraw
.Focus
.Save()
Case "ButtonMoveDown" '下移行
.StopRedraw
Dim i As Integer
Dim i1 As Integer = .TopRow '最上行位置
Dim i2 As Integer = .BottomRow '最末行位置
If i2 <= .Rows.Count -2 Then
For i = i2 To i1 Step -1
.Rows(i).Move(i+1)
Next
.Select(i1+1,.Cols(.colsel).index,i2+1,.Cols(.colsel).index)
Else
.Select(i1,.Cols(.colsel).index,i2,.Cols(.colsel).index)
End If
.ResumeRedraw
.Focus
.Save()