Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.01.2013, 12:34   #1
curock77
Новичок
Джуниор
 
Регистрация: 24.01.2013
Сообщений: 2
По умолчанию макрос на повторение

Есть макрос, подскажите пожалуйста какую нужно добавить команду что бы данный макрос запускался столько, сколько стоит в определенной ячейке ( то есть кол-во повторов по значению из ячейки) .

Sub Копи_строк()
'
' Копи_строк Макрос

Rows("15:15").Select
Selection.Copy
A_LastRow = Cells(Rows.Count, 1).End(xlUp).Select + 1
Selection.Insert Shift:=xlDown

End Sub
curock77 вне форума Ответить с цитированием
Старый 28.01.2013, 13:09   #2
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Код:
Sub copyspovtorom()
    Dim i&
    Application.ScreenUpdating = False
    For i = 1 To [a1].Value
        Rows(15).Copy Cells(Rows.Count, 1).End(xlUp)(2)
    Next
    Application.ScreenUpdating = True
End Sub
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 28.01.2013, 13:09   #3
Скрипт
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 776
По умолчанию

curock77, вообще, в языках программирования используются циклы, если одно и то же действие нужно сделать несколько раз.

В VBA есть вот такие циклы:
  1. For ... To ... Step ... Next - используется, если известно, сколько раз нужно выполнить одну и ту же команду;
  2. Do ... Loop - используется, если заранее не известно, сколько раз выполнить одну и ту же команду;
  3. For Each ... Next - используется для обработки всех элементов в коллекции или VBA-массиве.
Но мне кажется, что ваша задача по-другому решается. Выложите книгу с примерными данными и на основе этой книги поясните, что нужно сделать.
Скрипт вне форума Ответить с цитированием
Старый 28.01.2013, 13:12   #4
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

число повторов в ячейке А2
Код:
Rows("15:15").Copy
Cells(Rows.Count, 1).End(xlUp).offset(2,0).resize([a2],1).Insert Shift:=xlDown
если я правильно все понял - работать должно так (поубирал select с Вашего кода)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 28.01.2013, 13:38   #5
curock77
Новичок
Джуниор
 
Регистрация: 24.01.2013
Сообщений: 2
По умолчанию

Спасибо Hugo121 ,IgorGO за Ваши варианты, все работает.
curock77 вне форума Ответить с цитированием
Старый 24.06.2013, 14:04   #6
Xstroy
 
Регистрация: 24.06.2013
Сообщений: 4
По умолчанию

Если ещё есть кому ответить...
Цитата:
Сообщение от Hugo121 Посмотреть сообщение
Код:
Sub copyspovtorom()
    Dim i&
    Application.ScreenUpdating = False
    For i = 1 To [a1].Value
        Rows(15).Copy Cells(Rows.Count, 1).End(xlUp)(2)
    Next
    Application.ScreenUpdating = True
End Sub
Цитата:
Сообщение от IgorGO Посмотреть сообщение
число повторов в ячейке А2
Код:
Rows("15:15").Copy
Cells(Rows.Count, 1).End(xlUp).offset(2,0).resize([a2],1).Insert Shift:=xlDown
если я правильно все понял - работать должно так (поубирал select с Вашего кода)
Оба решения хороши, но понадобилось размножить не строки, а диапазон ячеек (к примеру М10:R10). И тогда сие чудо не работает. Подскажите как ...

Кроме того, требуется чтобы повторов было столько, сколько не пустых ячеек со значением слева (указанием ячейки).

Пытался вставлять в заведомо больший диапазон ячеек, но когда повторы доходят до конца данных, используемых в копируемой формуле, выскакивает ошибка.
Xstroy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Повторение процедуры Firebird Общие вопросы Delphi 6 23.11.2012 12:03
Повторение команд Mihanches Общие вопросы Delphi 5 07.10.2010 14:12
Повторение CraftR14 Общие вопросы Delphi 8 17.04.2010 20:15