Страницы: 1
RSS
Как удалить выделенные строки в области со сдвигом вверх с условием.
 

Здравствуйте, записала макрос макро рекордером, макрос удаляет выделенную область со сдвигом вверх. Рабочая область располагается (таблица) B:H хотелось бы уйти от ошибок, допустим, чтобы макрос не реагировал если я выделяю область больше чем положено или меньше чем положено.

Изменено: Лина - 16.02.2018 21:45:18
 
Добрый вечер! Такой код будет вставлять/удалять только зацепленные выделением строки в диапазоне B:H и не трогать ячейки вне этого диапазона.
Код
Sub вставить_выделенные_строки()
  Dim rng As Range
  Set rng = Intersect(Range("B:H"), Selection)
  If Not rng Is Nothing Then
    Set rng = Intersect(rng.EntireRow, Range("B:H"))
    rng.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
  End If
End Sub

Sub удалить_выделенные_строки()
  Dim rng As Range
  Set rng = Intersect(Range("B:H"), Selection)
  If Not rng Is Nothing Then
    Set rng = Intersect(rng.EntireRow, Range("B:H"))
    rng.Delete Shift:=xlUp
  End If
End Sub
Изменено: ZVI - 16.02.2018 22:15:51
 
ZVI, Вне диапазона работает, строки за пределами не вставляются! а вот внутри диапазона если я выделяю например, В7:Е6 срабатывает, чего не хотелось бы(
 
ZVI, пардон) не досмотрела всей прелести кода все работает как  и хотелось! Спасибо за решение!
 
Лина, да, отличается от того, что требовалось, но это сознательно сделано, вроде так более универсально. Удачи Вам!
Страницы: 1
Читают тему
Наверх