#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. Спасибо, это прекрасно работает.