Страницы: 1
RSS
Макросом удалить строки с двух листов
 
Здравствуйте подскажите пожалуйста. Мне нужно удалить 4 строки на листе "Яблоко" и "Груша" (должен быть скрыт). То есть если я встаю на лист "Яблоко" на ячейку "A15", жму на макрос и он должен удалить строки с "15:18", одновременно должны удалиться те же строки и на листе "Груша".
Код
Sub Удалить_Строки()
    Sheets(Array("Яблоко", "Груша")).Select
    ActiveCell.Rows("1:4").EntireRow.Select
    Selection.Delete Shift:=xlUp
    ActiveCell.Select
    Sheets("Яблоко").Select
End Sub
Этот макрос выдает ошибку только, когда лист "Груша" скрыт
 
Код
Sub Удалить_Строки()
Dim iSh As Worksheet
Application.ScreenUpdating = False
For Each iSh In ThisWorkbook.Worksheets
  With iSh
  If .Name = "Яблоко" Or .Name = "Груша" Then
    .Rows("1:4").Delete Shift:=xlUp
  End If
  End With
Next
Application.ScreenUpdating = True
End Sub
Согласие есть продукт при полном непротивлении сторон
 
Sanja, здравствуйте спасибо что откликнулись, забыл пометить что ссылки относительные. Вашем случае он удаляет с "1:4" строку. А нужно чтобы удалял, если встаю на 15 строку то с "15:18", если с 23 строки, то "23:26". Моя ошибка, извините могли бы поправить макрос?
 
Код
Sub Удалить_Строки()
Dim iSh As Worksheet
Application.ScreenUpdating = False
For Each iSh In ThisWorkbook.Worksheets
  With iSh
  If .Name = "Яблоко" Or .Name = "Груша" Then
    .Rows(ActiveCell.Row).Rows("1:4").Delete Shift:=xlUp
  End If
  End With
Next
Application.ScreenUpdating = True
End Sub
 
Еще вариант
Код
.Rows(ActiveCell.Row).Resize(4).Delete Shift:=xlUp
Согласие есть продукт при полном непротивлении сторон
 
МатросНаЗебре, Sanja, спасибо Вам за помощь, очень благодарен Вам. Подскажите, а если нужно будит не удалить, а наоборот добавить строки?
 
Запишите макросом нужные действия и попробуйте сами проанализировать получившийся код
Согласие есть продукт при полном непротивлении сторон
 
Спасибо, получилось!
Код
Sub Добавить_Строки()
Dim iSh As Worksheet
Application.ScreenUpdating = False
For Each iSh In ThisWorkbook.Worksheets
  With iSh
  If .Name = "Яблоко" Or .Name = "Груша" Then
    .Rows(ActiveCell.Row).Rows("1:4").Insert Shift:=xlDown 'Вариант №1
    '.Rows(ActiveCell.Row).Resize(4).Insert Shift:=xlDown 'Вариант №2
  End If
  End With
Next
Application.ScreenUpdating = True
End Sub
 
Извините не подскажите, а как быть если надо также скопировать строки,  потом вставить их с нужной мне строки. Мне создать новую тему, или в этой может быть подсказка?
 
Копирование, впрочем как и вставка строк, ну никак не подходят под тему про их удаление)
Согласие есть продукт при полном непротивлении сторон
Страницы: 1
Читают тему
Наверх