Я создаю UserForm, который позволяет пользователю выбирать лист для выполнения макроса и вводить в X количество строк, в которых конечной целью является разделение выбранного листа на несколько листов по Х количество строк.Excel VBA: разделение на несколько листов
Код:
Dim rowCount As Long
Dim rowEntered As Long
Dim doMath As Long
rowCount = Sheets(Me.ComboBox1.Value).Cells(Rows.Count, "A").End(xlUp).Row 'Count Number of Rows in selected Sheet
rowEntered = Val(Me.TextBox1.Value) 'User enters X amount
If rowCount < rowEntered Then
MsgBox "Enter in another number"
Else
doMath = (rowCount/rowEntered)
For i = 1 to doMath
Sheets.Add.name = "New-" & i
Next i
'Help!!
For i= 1 to doMath
Sheets("New-" & i).Rows("1:" & rowEntered).Value = Sheets(Me.ComboBox1.Value).Rows("1:" & rowEntered).Value
Next i
End If
Последняя часть кода, где мне нужна помощь, потому что я не могу понять, как сделать это правильно ..
в настоящее время код перебирает вновь добавлены листы и «пасты» в тех же строках. Например, если выбранный лист имеет 1000 строк (rowCount), а rowEntered - 500, тогда он создаст 2 новых листа. Строки 1-500 должны идти в New-1, а строки 501-1000 должны идти в New-2. Как я могу это достичь?
Вместо этого используйте 'range'? Создайте переменные диапазона, которые содержат строки, затем опустите их. – findwindow