У меня есть таблица, в которой мне нужно добавить X количество строк. Код ниже - это то, что у меня есть. Мне нужно изменить этот макрос каждый раз, когда мне нужно другое количество строк.Как повторить код на основе числа в ячейке в Excel?
Мне было интересно, могу ли я написать этот макрос, чтобы он произвел X количество строк, где X - номер, который пользователь помещает в ячейку A1.
Итак, какой код я могу использовать для чтения ячейки A1? Затем, как я могу закорачивать свой код, чтобы постоянно добавлять строку в A10 X раз.
Sub Insert_specific_rows()
Dim CurrentSheet As Object
For Each CurrentSheet In ActiveWindow.SelectedSheets
CurrentSheet.Range("A10:A138").EntireRow.Insert
Next CurrentSheet
End Sub
Кроме того, есть способ переписать этот код таким образом, что, когда он добавляет новую строку, он также приносит копию вниз все клетки из B9 через Z9?
EDITED раствором ----
Так благодаря всей вашей помощи, вот код, теперь у меня есть. Тем не менее, мне нужно сделать это примерно до 50 000 строк, и кажется, что этот код работает по строкам. Любые предложения о том, как улучшить это?
Возможно, ему нужно добавить все строки, а затем сделать одну копию формулы?
обновлена формула:
Sub All_Lines_Add_Rows_Macro()
Dim CurrentSheet As Object
Dim numRows As Long
For Each CurrentSheet In ActiveWindow.SelectedSheets
numRows = InputBox("How many lines is your CDM?", "Rows to Add") - 1
Range("A10:Z10").ClearContents
For i = 1 To numRows
CurrentSheet.Range("A10").EntireRow.Insert
CurrentSheet.Range("AA9:EY9").Copy
CurrentSheet.Range("AA10").PasteSpecial Paste:=xlPasteAll
Application.CutCopyMode = False
Next i
Rows(9).EntireRow.Delete
Next CurrentSheet
End Sub
Я предполагаю, что я оставляю добавить строки в 'For I' цикла. Затем, после того, как все строки были добавлены, как я могу скопировать из A10 в (A10 + X - 1 строки)?
взгляд на usedrange и заполнить вниз –
Вы можете добавить 'InputBox', чтобы получить число. http://www.exceltrick.com/formulas_macros/vba-inputbox/ –