2011-10-04 09:18:12 +0000 2011-10-04 09:18:12 +0000
6
6

¿Cómo puedo mover la selección hacia abajo una fila en Excel 2007?

¿Existe una forma de mover un rango seleccionado a la siguiente fila?

Digamos que tengo seleccionado “E9:H9” y quiero que la selección se mueva a “E10:H10”. ¿Hay algún atajo para ello? La selección no debería ampliarse, sino moverse una fila hacia abajo.

Respuestas (4)

12
12
12
2011-10-04 13:29:40 +0000

Parece que sólo necesitas algo como esto:

Sub moveselection()

Selection.Offset(1, 0).Select

End Sub

Esto moverá su selección una fila hacia abajo sin cambiar el tamaño de la selección.

3
3
3
2011-10-05 05:56:01 +0000

(a) Ese código no se mueve hacia abajo una fila como en la pregunta

(b) Sólo funcionará en la primera fila de una selección, ¿quieres que funcione en una selección de varias filas?

© En lugar de llamar a un sub para esto, podría ejecutarlo automáticamente haciendo clic con el botón derecho del ratón - puede hacerlo añadiendo haciendo clic con el botón derecho en la pestaña de su hoja, Ver Código, y pegando el código de abajo

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
1
1
1
2016-06-19 06:32:34 +0000

Una alternativa que utiliza argumentos con nombre, y es, por tanto, mucho más clara, es algo así

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

Un rowOffset positivo mueve la selección hacia abajo en la hoja, un rowOffset negativo mueve hacia arriba el número de filas especificado, y un offset cero deja la fila en la que reside la selección sin cambios.

Del mismo modo, los desplazamientos positivos mueven la selección hacia la derecha, mientras que los desplazamientos negativos la mueven hacia la izquierda. El cero, por supuesto, deja la columna sin cambios.

Ver Propiedad Range.Offset (Excel)

Dos descubrimientos relacionados pueden también ser de interés para los futuros visitantes.

  1. Haz lo siguiente para insertar una columna. Selection.EntireColumn.Insert y tenga cuidado con Range.Insert, que genera el error de ejecución 1004, al menos en algunas circunstancias, como las hojas de trabajo protegidas (incluso con la inserción de columnas permitida mientras está protegida).
  2. El método que acabamos de describir deja el punto de inserción en la nueva columna, lo que no noté hasta que llegué aquí en busca de un método para mover la selección (¡sólo para descubrir que no lo necesitaba!).
0
0
0
2011-10-04 10:12:29 +0000

Ok,

El cursor tiene que estar en la fila y los rangos “E” y “GN” necesitan ser ajustados para diferentes columnas pero me ahorra algo de tiempo:

Sub SelectRange()

  Dim RowNumber As Integer

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

End Sub