Добрый день. Приведенный ниже макрос добавляет пустые строки в таблицу в загруженном файле по нажатию кнопки.
К сожалению, рабочий файл не удалось, даже, архивированием ужать до 100 кб.
Поэтому, файл приложил отдельно, код для кнопки вставил в сообщение отдельно.
Закавыка в том, что необходимо присваивать вновь добавленным строкам не порядковый номер в столбце "B", а первый свободный пустой номер, а если таких нет, первый номер после максимального имеющегося. Строки могут добавляться в любом месте таблицы. То, есть, встав, например, между номерами 5 и 6 строке должен быть присвоен номер 13. А если, перед этим удалят строки с номерами 7 и 9, то следующей добавленной строке должен быть присвоен номер 7, добавленной за ней - номер 9 а добавленной за ними, уже, номер 13.
Можно ли добавить реализацию такого условия в макрос добавления строки по шелчку кнопки, приведенному ниже?
С уважением,
Олег
К сожалению, рабочий файл не удалось, даже, архивированием ужать до 100 кб.
Поэтому, файл приложил отдельно, код для кнопки вставил в сообщение отдельно.
Закавыка в том, что необходимо присваивать вновь добавленным строкам не порядковый номер в столбце "B", а первый свободный пустой номер, а если таких нет, первый номер после максимального имеющегося. Строки могут добавляться в любом месте таблицы. То, есть, встав, например, между номерами 5 и 6 строке должен быть присвоен номер 13. А если, перед этим удалят строки с номерами 7 и 9, то следующей добавленной строке должен быть присвоен номер 7, добавленной за ней - номер 9 а добавленной за ними, уже, номер 13.
Можно ли добавить реализацию такого условия в макрос добавления строки по шелчку кнопки, приведенному ниже?
С уважением,
Олег
Код |
---|
Sub Кнопка4_Щелчок() Application.ScreenUpdating = False If Application.Intersect(ActiveCell, ActiveSheet.UsedRange) Is Nothing _ Or ActiveCell.Row < 9 Then MsgBox "Активная строка вне таблицы" Else Rows(ActiveCell.Row).Insert Rows(ActiveCell.Row + 1).Copy Rows(ActiveCell.Row) End If Cells(ActiveCell.Row + 1, 3).Resize(, 7).Value = Empty Cells(ActiveCell.Row + 1, 11).Resize(, 3).Value = Empty Cells(ActiveCell.Row + 1, 15).Resize(, 8).Value = Empty Range(Cells(ActiveCell.Row + 1, 4), Cells(ActiveCell.Row + 1, 9)).Locked = False Cells(ActiveCell.Row + 1, 22).Locked = False Application.ScreenUpdating = True End Sub |