如何在 Excel 2007 中将选定内容向下移动一行?

如何在 Excel 2007 中将选定内容向下移动一行?

有没有办法将选定的范围移动到下一行?

假设我选择了“E9:H9”,并希望将所选内容移动到“E10:H10”。有快捷方式吗?所选内容不应扩展,而应向下移动一行。

答案1

听起来你只需要这样的东西:

Sub moveselection()

Selection.Offset(1, 0).Select

End Sub

这会将您的选择向下移动一行,但不改变选择的大小。

答案2

(a)该代码不会按照问题向下移动一行

(b)它只对选择的第一行起作用,您是否希望它对多行选择起作用?

(c)与其为此调用子程序,你可以通过右键单击鼠标来自动运行它 - 您可以通过右键单击工作表选项卡,查看代码,然后粘贴以下代码来执行此操作

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
    On Error Resume Next
    Range("E" & CStr(Selection.Row) & ":" & "GN" & CStr(Selection.Row)).Select
End Sub

答案3

一种使用命名参数的替代方法是这样的,因此更加清晰。

ActiveCell.Offset(rowOffset:=1, columnOffset:=0).Activate

正的 rowOffset 会将选定内容在工作表中向下移动,负的 rowOffset 会将指定的行数向上移动,而零偏移量会使选定内容所在的行保持不变。

同样,正偏移量将选择项向右移动,而负偏移量将选择项向左移动。当然,零表示列保持不变。

Range.Offset 属性 (Excel)

两个相关的发现也许会引起未来游客的兴趣。

  1. 执行以下操作以插入列。Selection.EntireColumn.Insert并注意 Range.Insert,它会引发运行时错误 1004,至少在某些情况下,例如受保护的工作表(即使在受保护的情况下允许插入列)。
  2. 刚刚描述的方法将插入点留在新列中,直到我来到这里寻找移动选择的方法时我才注意到这一点(才发现我不需要它!)。

答案4

好的,

光标必须位于行中,并且范围“E”和“GN”需要针对不同的列进行调整,但它为我节省了一些时间:

Sub SelectRange()

  Dim RowNumber As Integer

  RowNumber = Selection.Row
  Range("E" & CStr(RowNumber) & ":" & "GN" & CStr(RowNumber)).Select

End Sub

相关内容