EXCEL,点中某单元格,VBA将这一行的整行数据上下移

点中某格,通过VB按钮(两个按钮,上移,下移),实现整个行的上下移动,找了半天,也只找到对某单元格的单独移动,但不是整行的,
我的过程是,打开控件工具箱,点出两个命令按钮,右键点按钮,选,属性,把两个按钮改CAPTION为上移和下移,再右键点按钮,选,代码,该粘贴什么样的语句呢

Private Sub CommandButton1_Click()
"上移"写什么呢
End Sub
Private Sub CommandButton2_Click()
下移写什么呢
End Sub

第1个回答  2014-05-01
Sub 上移()
Application.ScreenUpdating = False
Dim ll As Long '定义ll为长整数型变量
ll = ActiveCell.Row '活动单元格所在行
Rows(ll).Cut
Rows(ll - 1).Select
ActiveSheet.Paste
End Sub
Sub 下移()
Application.ScreenUpdating = False
Dim ll As Long '定义ll为长整数型变量
ll = ActiveCell.Row '活动单元格所在行
Rows(ll).Cut
Rows(ll + 1).Select
ActiveSheet.Paste

End Sub
谢谢追问

追答

第一行不是我给你的数据,删掉
Sub 上移()
Application.ScreenUpdating = False
Dim ll As Long '定义ll为长整数型变量
ll = ActiveCell.Row '活动单元格所在行
Rows(ll).Cut
Rows(ll - 1).Select
ActiveSheet.Paste
End Sub
Sub 下移()
Application.ScreenUpdating = False
Dim ll As Long '定义ll为长整数型变量
ll = ActiveCell.Row '活动单元格所在行
Rows(ll).Cut
Rows(ll + 1).Select
ActiveSheet.Paste
End Sub

好吧

本回答被提问者和网友采纳
第2个回答  2014-05-01
将如下代码复制到sheet代码中。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Row > 1 Then
Dim ClickCell As Single
ClickCell = Target.Row
Rows(ClickCell - 1 & ":" & ClickCell - 1).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Rows(ClickCell + 1 & ":" & ClickCell + 1).Cut Destination:=Rows(ClickCell - 1 & ":" & ClickCell - 1)
Rows(ClickCell + 1 & ":" & ClickCell + 1).Delete
End If
End Sub追问

我现在试试

为什么是“代码复制到sheet代码中 ”,而不是Private Sub CommandButton1_Click() 下面呢。我想通过按钮来控制,操作如下,打开VB,控件箱,拖入按钮,右键代码。把你的语句复制到Private Sub CommandButton1_Click() 下面,不行,报错,复制到sheet代码中,点按钮不起作用

追答

有单元格触发事件

用按钮的也可以。

第3个回答  2014-05-01
自己将“某单元格单独移动”的语句改为整行移动就行了。
第4个回答  2014-05-01
用录制宏,再修改。追问

录制宏是没什么意义的,录制的是固定的某个单元格,移动的也是固定的某行,没有广泛意义,

相似回答