Страницы: 1
RSS
Выполнение макроса заданное количество раз
 
И снова, здравствуйте.  
Мой несложный макрос:  
1.На Листе2 ищет номер строки, указанный на Листе1.  
2.Информацию из найденной строки Листа2 помещает в форму Листа1.  
3.Выводит на печать заполненную форму Листа1.  
4.Увеличивает номер указанной строки.  
 
Что нужно подписать в конце макроса, чтобы он выполнялся столько раз,  
сколько указано в А1 Листа1?  
Спасибо.
 
sub www  
for i=1 to [a1].value
call mymacro  
next  
end sub
Я сам - дурнее всякого примера! ...
 
Здравствуйте, KukLP.  
Вы мне так быстро ответили, а я только спустя неделю Вас благодарю.  
Спасибо.  
Повтыкал Ваше предложение. Никак.  
Назрел резонный вопрос: "Куда вставить?":)  
Прикрепляю файл,может подправите?  
Спасибо.
 
Sub www()  
   For i = 1 To [b2].Value
       [b1] = i: Sheets("форма").PrintOut Copies:=1
   Next  
   MsgBox "Готово!"  
End Sub
Я сам - дурнее всякого примера! ...
 
Здорово!  
Получилось.  
Спасибо.  
И еще один вопрос.  
А можно ли как-то скрыть "мельтешню", возникающую при семикратном выполнении макроса?
 
Сюда ещё загляните:  http://www.planetaexcel.ru/tip.php?aid=203
 
application.screenupdating=0
Я сам - дурнее всякого примера! ...
 
Sub www()  
application.screenupdating=0  
For i = 1 To [b2].Value
[b1] = i: Sheets("форма").PrintOut Copies:=1
Next  
MsgBox "Готово!"  
application.screenupdating=1  
End Sub
Киса, я хочу Вас спросить, как художник — художника: Вы рисовать умеете?
 
Sub печатьформы()  
'  
' печатьформы Макрос  
'  
 
'  
   ActiveWindow.SelectedSheets.PrintOut Copies:=1  
   Range("C1").Select  
   ActiveCell.FormulaR1C1 = "=RC[-1]+1"
   Range("C1").Select  
   Selection.Copy  
   Range("B1").Select  
   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _  
       :=False, Transpose:=False  
   Application.CutCopyMode = False  
  Application.ScreenUpdating = 0  
For i = 1 To [b2].Value
[b1] = i: Sheets("форма").PrintOut Copies:=1
Next  
MsgBox "Готово!"  
Application.ScreenUpdating = 1  
End Sub  
 
Вот, что у меня получилось.  
В итоге в В1 всегда во вторую очередь выводится вторая строка из списка.  
Хотя если в В1 я ввожу 5, то жду что на втором круге выполнения макроса будет 6, а не 2.
 
Пирогов, зачем Вы весь свой мусор пооставляли в макросе? Он там не нужен.  
Sub печатьформы()' если уж Вам так хочется:-)  
if [b1].Value > [b2].Value then exit sub
application.screenupdating=0  
For i = [b1].Value To [b2].Value
[b1] = i: Sheets("форма").PrintOut Copies:=1
Next  
[b1].Value = [b2].Value+1
MsgBox "Готово!"  
application.screenupdating=1  
End Sub  
в [b1] начальная строка, в [b2] конечная
Я сам - дурнее всякого примера! ...
 
KukLP, спасибо.  
Задача выполняется корректно.  
Ну, а все-таки, можно ли,именно, зациклить макрос?  
Изначально, я ожидал увидеть какой-то счетчик, по результатам которого макрос либо повторяется либо "End Sub".  
Спасибо.
 
Называется "читайте по губам" раз на мониторе не получается!!  
 
в [b1] начальная строка, в [b2] конечная
if [b1].Value > [b2].Value then exit sub
Какой ещё счётчик нужен?
 
Alex77755, да, это-то я понял.  
Тут две разные логики действий.  
Либо макрос выполняет действия для заданного диапазона (от b1 до b2) и сам выбирает обрабатываемые данные, либо он повторяется без изменений(изменения осуществляют формулы). Вот второй вариант мне и не дает покоя.
Страницы: 1
Читают тему
Наверх