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

Jak przesunąć zaznaczenie o jeden wiersz w dół w programie Excel 2007?

Czy istnieje sposób, aby przenieść wybrany zakres do następnego wiersza?

Powiedzmy, że mam zaznaczone “E9:H9” i chcę, aby zaznaczenie zostało przeniesione do “E10:H10”. Czy jest na to jakiś skrót? Zaznaczenie nie powinno być rozszerzone, ale przesunięte o jeden wiersz w dół.

Odpowiedzi (4)

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

Brzmi to tak, jakbyś potrzebował czegoś takiego:

Sub moveselection()

Selection.Offset(1, 0).Select

End Sub

To spowoduje przesunięcie zaznaczenia o jeden rząd w dół bez zmiany rozmiaru zaznaczenia.

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

(a) Ten kod nie przesuwa się w dół o jeden wiersz, jak w pytaniu

(b) Będzie działał tylko na pierwszym wierszu zaznaczenia, czy chciałeś, aby działał na zaznaczeniu wielu wierszy?

© Zamiast wywoływać podpowiedź, możesz uruchomić ją automatycznie, klikając prawym przyciskiem myszy - możesz to zrobić, klikając prawym przyciskiem myszy na zakładkę arkusza, View Code i wklejając poniższy kod

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

Alternatywą, która używa nazwanych argumentów i dlatego jest o wiele bardziej przejrzysta, jest coś takiego.

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

Dodatni rowOffset przesuwa zaznaczenie w dół arkusza, ujemny rowOffset przesuwa w górę o określoną liczbę wierszy, a zerowy offset pozostawia wiersz, w którym znajduje się zaznaczenie, bez zmian.

Podobnie, dodatnie przesunięcia przesuwają zaznaczenie w prawo, podczas gdy ujemne przesunięcia przesuwają je w lewo. Zero, oczywiście, pozostawia kolumnę niezmienioną.

Zobacz Właściwość Range.Offset (Excel)

Dwa powiązane odkrycia mogą również zainteresować przyszłych gości.

  1. Wykonaj następujące czynności, aby wstawić kolumnę. Selection.EntireColumn.Insert i uważaj na Range.Insert, który podnosi błąd runtime 1004, przynajmniej w niektórych okolicznościach, takich jak chronione arkusze (nawet z dozwolonym wstawianiem kolumny, gdy jest ona chroniona).
  2. Opisana przed chwilą metoda pozostawia punkt wstawiania w nowej kolumnie, czego nie zauważyłem, dopóki nie przyszedłem tutaj w poszukiwaniu metody przenoszenia zaznaczenia (tylko po to, by odkryć, że jej nie potrzebowałem!).
0
0
0
2011-10-04 10:12:29 +0000

Ok,

Kursor musi być w wierszu, a zakresy “E” i “GN” wymagają dopasowania do różnych kolumn, ale oszczędza mi to trochę czasu:

Sub SelectRange()

  Dim RowNumber As Integer

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

End Sub