Страницы: 1
RSS
Макросом создать заданное количество таблиц
 
Здравствуйте, помогите с такой проблемкой. Макросом копируется таблица с листа "Груша"на лист "Яблоко", таблицы располагаются друг под другом, таких таблиц может быть n-количество. Каждая таблица занимает 30 строк, не нужные строки скрыты. Как можно макросом создать заданное количество таблиц, например запускаешь макрос, всплывает форма, где указываешь сколько нужно создать таблиц, жмешь "ok", и он создает эти таблицы друг под другом. В маем случае макрос запускается, только с таблицы "Яблоко", и только со столбца "A".Очень большое количество таблиц приходиться создавать.
 
Цитата
Alex32 написал:
В маем случае макрос запускается, только с таблицы "Яблоко",
а должно как?
Не бойтесь совершенства. Вам его не достичь.
 
запускаешь макрос, всплывает форма, где указываешь сколько нужно создать таблиц, жмешь "ok", и он создает эти таблицы друг под другом.  
 
Alex32, где находится таблица яблоко?
Не бойтесь совершенства. Вам его не достичь.
 
Цитата
Alex32 написал:
Макросом копируется таблица с листа "Груша"на лист "Яблоко"
 
нужно на всех листах создать или на одном?
Изменено: Mershik - 20.10.2020 12:56:59
Не бойтесь совершенства. Вам его не достичь.
 
На листе яблоко
 
Alex32, все равно что-то темное)
Код
Sub copy_n()
Dim n As Long, lr As Long, i As Long
n = Application.InputBox("Укажите сколько таблиц вы хотите создать? (ЦЕЛОЕ ЧИСЛО)", Type:=1)
For i = 35 To n * 30 Step 30
    Range("5:34").Copy Destination:=Rows(i)
Next i
End Sub
Не бойтесь совершенства. Вам его не достичь.
 
Да,Спасибо большое, то что нужно. А можно сделать, чтобы копировал таблицу с листа "Груша", И можно продолжить создание таблиц, например создал 100 таблиц, ввел данные, а потом необходимо создать еще 300. Получается нужно будет пересоздавать?
 
Alex32,
Код
Sub copy_n()
Dim n As Long, lr As Long, i As Long
n = Application.InputBox("Укажите сколько таблиц вы хотите создать? (ЦЕЛОЕ ЧИСЛО)", Type:=1)
X = Range("A1").SpecialCells(xlLastCell).Row
For i = X To (n - 1) * 30 + X Step 30
    Worksheets("Груша").Range("3:33").Copy Destination:=Rows(i)
Next i
End Sub
Изменено: Mershik - 20.10.2020 13:50:53
Не бойтесь совершенства. Вам его не достичь.
 
Спасибо ещё раз то что нужно
 
Пришлось заменить это
Цитата
Mershik написал:
X = Range("A1").SpecialCells(xlLastCell).Row
т.к после удаления и при повторном создании таблицы, макрос добавляет с той строки на которой закончил
заменил на это
Код
ActiveSheet.UsedRange.Row + ActiveSheet.UsedRange.Rows.Count
Пояснение здесь КАК ОПРЕДЕЛИТЬ ПОСЛЕДНЮЮ ЯЧЕЙКУ НА ЛИСТЕ ЧЕРЕЗ VBA? Может кому то пригодиться.
Страницы: 1
Наверх