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

Wie verschiebe ich die Auswahl in Excel 2007 um eine Zeile nach unten?

Gibt es eine Möglichkeit, einen ausgewählten Bereich in die nächste Zeile zu verschieben?

Nehmen wir an, ich habe “E9:H9” ausgewählt und möchte die Auswahl auf “E10:H10” verschieben. Gibt es dafür ein Tastenkürzel? Die Auswahl soll nicht erweitert werden, sondern eine Zeile nach unten verschoben werden.

Antworten (4)

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

Es hört sich so an, als bräuchten Sie nur etwas wie das hier:

Sub moveselection()

Selection.Offset(1, 0).Select

End Sub

Dies verschiebt Ihre Auswahl um eine Zeile nach unten, ohne die Größe der Auswahl zu verändern.

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

(a) Dieser Code bewegt sich nicht um eine Zeile nach unten, wie in der Frage

(b) Er funktioniert nur bei der ersten Zeile einer Auswahl, wollten Sie, dass er bei einer mehrzeiligen Auswahl funktioniert?

© Anstatt ein Unterprogramm dafür aufzurufen, könnten Sie es automatisch ausführen, indem Sie mit der rechten Maustaste klicken - Sie können dies tun, indem Sie mit der rechten Maustaste auf die Registerkarte “Blatt” klicken, Code anzeigen und den folgenden Code einfügen

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

Eine Alternative, die benannte Argumente verwendet und daher viel übersichtlicher ist, ist etwas wie dieses.

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

Ein positiver rowOffset verschiebt die Auswahl auf dem Blatt nach unten, ein negativer rowOffset verschiebt sie um die angegebene Anzahl von Zeilen nach oben, und ein Null-Offset lässt die Zeile, in der sich die Auswahl befindet, unverändert.

Ebenso verschieben positive Offsets die Auswahl nach rechts, während negative Offsets sie nach links verschieben. Null lässt natürlich die Spalte unverändert.

Siehe Range.Offset Property (Excel)

Zwei verwandte Entdeckungen könnten für zukünftige Besucher ebenfalls von Interesse sein.

  1. Gehen Sie wie folgt vor, um eine Spalte einzufügen. Selection.EntireColumn.Insert und hüten Sie sich vor Range.Insert, das den Laufzeitfehler 1004 auslöst, zumindest unter bestimmten Umständen, wie z. B. bei geschützten Arbeitsblättern (auch wenn das Einfügen von Spalten erlaubt ist, während es geschützt ist).
  2. Die gerade beschriebene Methode lässt die Einfügemarke in der neuen Spalte, was ich nicht bemerkte, bis ich auf der Suche nach einer Methode zum Verschieben der Auswahl hierher kam (nur um festzustellen, dass ich sie nicht brauchte!).
0
0
0
2011-10-04 10:12:29 +0000

Ok,

Der Cursor muss in der Zeile stehen und die Bereiche “E” und “GN” müssen für verschiedene Spalten angepasst werden, aber es spart mir etwas Zeit:

Sub SelectRange()

  Dim RowNumber As Integer

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

End Sub