Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.05.2013, 19:04   #1
VITA11111
Пользователь
 
Регистрация: 03.07.2012
Сообщений: 50
По умолчанию макрос на добавление или удаления строк в таблицах

нужен макрос
A7:AD9 на листе "ТЕХНИКА НАПАДЕНИЯ" является переменным проверяемым массивом т.е. подразделом таблицы
нужно найти последнюю строку в этом массиве ,а потом снизу этого массива вставить строку с формулами из последней строки этого массива снизу в этом массиве
и получится что после добавлении строки проверяемый массив поменялся на
A7:AD10
таких масивов несколько на листе
после добавлении строк на листе "ТЕХНИКА НАПАДЕНИЯ" автоматически добавлялись строки в такихже подразделах таблицы "рабочего плана" и листа "2"
Код:
Sub М()
    Range("A9:AD9").Copy
    Range("A9:AD9").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("A9:AD9").PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    Range("С10").Activate
End Sub]
чтото такое
тут добавляется строка исходя из выделенной ячейки
Код:
Sub addRow()

Dim Frow As Long, Lrow As Long, Lcol As Long
Dim icol As Range, jCol As Range, n As Integer
 
 Frow = ActiveCell.Row
 Lcol = Cells.Find(What:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByColumns).Column

    For Each icol In Range(Cells(Frow, 1), Cells(Rows.Count, Lcol)).Columns
      Lrow = icol.Find(What:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByRows).Row
      Set jCol = icol.Resize(Lrow - Frow + 1)
      If jCol.Locked = False Then
         jCol.Copy Destination:=jCol.Offset(1, 0)
         jCol.Cells(1).ClearContents
      End If
    Next icol
End Sub
Sub delRow()

Dim Frow As Long, Lrow As Long, Lcol As Long
Dim icol As Range, jCol As Range, n As Integer
 
 Frow = ActiveCell.Row + 1
 Lcol = Cells.Find(What:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByColumns).Column

    For Each icol In Range(Cells(Frow, 1), Cells(Rows.Count, Lcol)).Columns
      Lrow = icol.Find(What:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByRows).Row
      Set jCol = icol.Resize(Lrow - Frow + 1)
      If jCol.Locked = False Then
         jCol.Copy Destination:=jCol.Offset(-1, 0)
         jCol.Cells(jCol.Cells.Count).ClearContents
      End If
    Next icol
End Sub
Вложения
Тип файла: rar ТН.rar (1.49 Мб, 15 просмотров)

Последний раз редактировалось VITA11111; 10.05.2013 в 01:36.
VITA11111 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка строк в таблицах vvvd Microsoft Office Excel 3 17.02.2013 21:03
Макрос изменения количества строк в таблицах на двух листах книги одновременно timda81 Microsoft Office Excel 5 30.06.2012 19:58
макрос для удаления строк??? mixa2997510 Microsoft Office Excel 3 21.05.2012 13:38
Макрос для удаления повторяющихся строк Jelena_bsb Microsoft Office Excel 3 05.08.2010 13:34
Добавление или удаление строк из базы. KOSTIK1 Microsoft Office Excel 8 10.03.2010 18:20