Копирование формул при вставке строки, но с указанием пользователем объема вставляемой строки

#excel #vba

#превосходить #vba

Вопрос:

У меня есть следующий код, который отлично работает, но он добавит только одну новую строку! Кто-нибудь знает, как я могу добавить некоторый код к этому существующему коду, чтобы при запуске функции он просил пользователя ввести количество строк, которые они хотят создать.

Спасибо, что нашли время взглянуть на это.

 With ActiveCell.EntireRow  .Copy  .Offset(1).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove  On Error Resume Next  .Offset(1).SpecialCells(xlCellTypeConstants).Value = ""  Application.CutCopyMode = False  On Error GoTo 0 End With  

Ответ №1:

Попробуй вот это:

 Sub AddRows()  Dim howMany As Long howMany = InputBox("How many rows?")  Dim i As Long For i = 1 To howMany  ActiveCell.EntireRow.Insert Next  End Sub  

ИЗМЕНИТЬ:
Чтобы сохранить формулы, просто поместите исходный код в цикл for.

 Sub AddRows()  Dim howMany As Long howMany = InputBox("How many rows?")  Dim i As Long For i = 1 To howMany  With ActiveCell.EntireRow  .Copy  .Offset(1).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove  On Error Resume Next  .Offset(1).SpecialCells(xlCellTypeConstants).Value = ""  Application.CutCopyMode = False  On Error GoTo 0  End With Next  End Sub  

Комментарии:

1. Спасибо, ваш код работает, но приведенный выше код копирует все формулы. Поэтому я пытаюсь объединить обе функции.

2. @user17543600 О, тогда смотрите мою правку =)

3. Спасибо, это прекрасно работает.