Sub MoveCells()
Dim rm As String
rm = InputBox(prompt:=p, Title:="Переместить на место перед строкой:")
If Not IsNumeric(rm) Then
MsgBox "Введенный номер строки некорректен.", vbCritical
Exit Sub
End If
Set rng = Selection
' Проверка, что выделены ячейки
If rng Is Nothing Then
MsgBox "Выделите ячейки для перемещения.", vbCritical
Exit Sub
End If
' Проверка, что номер строки в диапазоне допустимых значений
If rm < 1 Or rm > Rows.Count Then
MsgBox "Некорректный номер строки.", vbCritical
Exit Sub
End If
Selection.Cut
Cells(rm, rng.Column()).Select
Selection.Insert Shift:=xlDown
End Sub