Private Sub btndown_Click()
On Error Resume Next
Dim i As Long
Dim first_row_selected As Long
Dim last_row_selected As Long
Dim last_row_not_selected As Long
Dim begin_value As String
Dim end_value As String
Dim old_value As String
Dim new_value As String
With Me.fg
For i = 0 To .SelectedRows - 1
'最后一个选择行
last_row_selected = .SelectedRow(i)
Next
For i = .SelectedRows - 1 To 0 Step -1
'第一个选择行
first_row_selected = .SelectedRow(i)
Next
If last_row_selected < .Rows - 1 Then
'下面未选择的行
last_row_not_selected = last_row_selected + 1
'开始值
begin_value = .TextMatrix(first_row_selected, 1)
'结束值
end_value = .TextMatrix(last_row_not_selected, 1)
Debug.Print begin_value
Debug.Print end_value
'倒序更新
For i = last_row_selected To first_row_selected Step -1
old_value = .TextMatrix(i, 1)
new_value = .TextMatrix(i + 1, 1)
.TextMatrix(i + 1, 1) = old_value
Next
'重新选择行
.Select first_row_selected + 1, 1, last_row_selected + 1, 2
.TextMatrix(first_row_selected, 1) = end_value
End If
End With
End Sub
Private Sub btnup_Click()
On Error Resume Next
Dim i As Long
Dim first_row_selected As Long
Dim last_row_selected As Long
'选择区域上方的第一个未选择行
Dim first_row_not_selected As Long
Dim end_value As String
Dim old_value As String
With Me.fg
For i = 0 To .SelectedRows - 1
'最后一个选择行
last_row_selected = .SelectedRow(i)
Next
For i = .SelectedRows - 1 To 0 Step -1
'第一个选择行
first_row_selected = .SelectedRow(i)
Next
If first_row_selected > 1 Then
'上面未选择的行
first_row_not_selected = first_row_selected - 1
'结束值
end_value = .TextMatrix(first_row_not_selected, 1)
Debug.Print end_value
'倒序更新
For i = first_row_selected To last_row_selected
old_value = .TextMatrix(i, 1)
.TextMatrix(i - 1, 1) = old_value
Next
'重新选择行
.Select first_row_selected - 1, 1, last_row_selected - 1, 2
For i = 0 To .SelectedRows - 1
'最后一个选择行
last_row_selected = .SelectedRow(i)
Next
.TextMatrix(last_row_selected + 1, 1) = end_value
End If
End With
End Sub