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

Hoe verplaats ik de selectie één rij naar beneden in Excel 2007?

Is er een manier om een geselecteerd bereik naar de volgende rij te verplaatsen? Stel ik heb “E9:H9” geselecteerd en wil de selectie verplaatsen naar “E10:H10”. Is daar een sneltoets voor? De selectie moet niet worden uitgebreid, maar één rij naar beneden worden verplaatst.

Antwoorden (4)

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

Het klinkt alsof je gewoon iets als dit nodig hebt:

Sub moveselection()

Selection.Offset(1, 0).Select

End Sub

Dit zal je selectie een rij naar beneden verplaatsen zonder de grootte van de selectie te veranderen.

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

(a) Die code gaat niet één rij naar beneden zoals de vraag

(b) Het werkt alleen op de eerste rij van een selectie, wil je dat het werkt op een selectie van meerdere rijen ?

© In plaats van hiervoor een sub aan te roepen zou je het automatisch kunnen laten lopen door met de rechtermuisknop te klikken - je kunt dit doen door rechts te klikken op je blad tab, Code bekijken, en de onderstaande code in te plakken

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

Een alternatief dat gebruik maakt van benoemde argumenten, en daardoor veel duidelijker is, is iets als dit.

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

Een positieve rijOffset verplaatst de selectie omlaag op het blad, een negatieve rijOffset verplaatst het opgegeven aantal rijen omhoog, en een nul-offset laat de rij waarin de selectie zich bevindt ongewijzigd.

Positieve offsets verplaatsen de selectie naar rechts, negatieve offsets naar links. Nul laat natuurlijk de kolom ongewijzigd.

Zie Range.Offset Property (Excel)

Twee verwante ontdekkingen kunnen evengoed van belang zijn voor toekomstige bezoekers.

  1. Doe het volgende om een kolom in te voegen. Selection.EntireColumn.Insert en pas op voor Range.Insert, dat runtime error 1004 oproept, althans in sommige omstandigheden, zoals beschermde werkbladen (zelfs met kolommen invoegen toegestaan terwijl het beschermd is).
  2. De zojuist beschreven methode laat het invoegpunt in de nieuwe kolom staan, wat me niet opviel totdat ik hier kwam op zoek naar een methode om de selectie te verplaatsen (om te ontdekken dat ik die niet nodig had!).
0
0
0
2011-10-04 10:12:29 +0000

Ok,

De cursor moet in de rij staan en de bereiken “E” en “GN” moeten worden aangepast voor verschillende kolommen, maar het bespaart me wat tijd:

Sub SelectRange()

  Dim RowNumber As Integer

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

End Sub