Return to VBA Code Examples
This tutorial will demonstrate how pause (break) and resume a macro in Excel.
Being able to pause a macro while testing VBA code that has been written is a useful way to work out where any ‘bugs’ may be in our code. There are a number of ways that we can break the running of the macro, and then resume it from the point where the macro was interrupted.
The Control and Break keyboard combination
If we hold down the control key, and then press the Pause/Break key when VBA code is running, the code will immediately stop with a debug message warning us that the running of the macro has been interrupted.
We can then press the Continue button in the dialog box that pops up to continue running the macro. Alternatively, if we then press the Debug button in the dialog box, the macro will highlight the position where it stopped running. By resting the mouse over any existing variables, we can then see what is stored in the variables. This can be very useful in debugging our code.
We can then click the Run button in the ribbon (or press F5 on the keyboard) to resume running the macro.
Adding Break Points to the Macro
Before starting the macro, we can insert break points into the macro in order to stop the macro as specific lines of code.
We can run the code by clicking on the Run button in the Ribbon, or by pressing F5 on the keyboard. The macro will stop at the break point.
Press the Run button again (the caption will now say Continue) to resume the macro or press F5.
There may be other times that the running of a VBA macro may need to be paused. This can also be done using the Wait and Sleep methods. These methods are used more in delaying the actual progress of the macro rather than being used to debug the actual code.
For example, this line of code will delay the macro from running until 5 more seconds have passed.
Application.Wait (Now + TimeValue("0:00:05"))
VBA Coding Made Easy
Stop searching for VBA code online. Learn more about AutoMacro — A VBA Code Builder that allows beginners to code procedures from scratch with minimal coding knowledge and with many time-saving features for all users!
Learn More!
Mirage74 Пользователь Сообщений: 18 |
Здравствуйте. |
Mirage74 Пользователь Сообщений: 18 |
Приходится разбивать главный цикл и запускать вручную каждые минут 10, делая паузу (за это время проц охлаждается) |
Sanja Пользователь Сообщений: 14838 |
Думаю, что лучше будет переделать (оптимизировать) макрос, а не костыли придумывать. Что-бы макрос намертво вешал комп — это явно перебор. Изменено: Sanja — 24.11.2016 19:26:38 Согласие есть продукт при полном непротивлении сторон. |
The_Prist Пользователь Сообщений: 14182 Профессиональная разработка приложений для MS Office |
Если прям остановить надо — в циклы добавляйте строку DoEvents, тогда код можно будет прервать по Ctrl+Pause(Break). Но это тот еще метод — он в некоторых случаях может привести к ошибочному выполнению кода в дальнейшем. Как ускорить и оптимизировать код VBA Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
Игорь Пользователь Сообщений: 3631 |
Думаю, надо не паузу ставить, а макрос переписывать |
vikttur Пользователь Сообщений: 47199 |
Но переделка кода — не в этой теме. |
wowick Пользователь Сообщений: 972 |
По мне так надо продуть корпус от пыли. Может быть сменить термопасту, а может быть перейти на жидкостное охлаждение… Если автоматизировать бардак, то получится автоматизированный бардак. |
Mirage74 Пользователь Сообщений: 18 |
Дело не в макросе, все там нормально. Комп вешается и от других прог, которые грузят проц — например перекодировщик видео. Кулер не справляется. Да, нужно менять железо — но ведь вопрос не в этом. По существу кто-то может знает ? Нету такой возможности в программе сделать паузу ? |
Mirage74 Пользователь Сообщений: 18 |
#9 24.11.2016 19:48:29
Поменял кулер, купил новый, и термопаста естессно. Стал вешаться реже. Похоже проц надо менять и т.д.и т.п. Мой вопрос не в этом — то, что покупка нового компа решит мою проблему я как бы и сам догадываюсь Изменено: Mirage74 — 24.11.2016 19:48:39 |
||
The_Prist Пользователь Сообщений: 14182 Профессиональная разработка приложений для MS Office |
#10 24.11.2016 19:50:48
т.е. читать все ответы Вы не стали? Изменено: The_Prist — 24.11.2016 20:29:29 Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
||
Mirage74 Пользователь Сообщений: 18 |
Проц сильно грузится думаю из-за постоянного открытия-закрытия файлов. Но мой вопрос не в том, почему он грузится и нагревается. |
Sanja Пользователь Сообщений: 14838 |
#12 24.11.2016 20:00:20 Ну как знаете
Согласие есть продукт при полном непротивлении сторон. |
||
Mirage74 Пользователь Сообщений: 18 |
Смысл в том, чтобы я запустил макрос, и уехал по делам. А он сам себе паузы делает и дальше работает )) |
Mirage74 Пользователь Сообщений: 18 |
#14 24.11.2016 20:11:07 Кнопка цитирования не для ответа [МОДЕРАТОР]
Вопрос был есть ли такая функция/метод а Вы мне ссылку даете на курс по оптимизации программирования ) Наверняка кстати полезная, как мне показалась на первый взгляд, обязательно изучу, спасибо |
||
vikttur Пользователь Сообщений: 47199 |
Вы в полуторку грузите 5 тонн и спрашиваете, почему она не едет… |
Sanja Пользователь Сообщений: 14838 |
#16 24.11.2016 20:41:26 Mirage74, я понимаю что Вас не переубедить, но все-же…
КАК ПОЛУЧИТЬ ДАННЫЕ ИЗ ЗАКРЫТОЙ КНИГИ? Согласие есть продукт при полном непротивлении сторон. |
||
Mirage74 Пользователь Сообщений: 18 |
#17 24.11.2016 20:47:44
Ну я вот иногда поражаюсь таким «ответчикам» на форумах. Был задан конкретный вопрос: Существует ли такой-то метод. Подразумеваются варианты ответов: 1) да, такой-то. 2) не существует. А получаешь ответ в стиле: ‘ты все неправильно делаешь и делай по-другому’ |
||
The_Prist Пользователь Сообщений: 14182 Профессиональная разработка приложений для MS Office |
#18 24.11.2016 20:49:55
изучайте OnTime. Но для этого придется разбивать одну процедуру на несколько. Или, если в цикле нельзя прерывать счетчик — то с определенным шагом запоминать счетчик и выходить из процедуры, а запускать потом опять же по OnTime.
потому что код Ваш мы не видим и что там у Вас — не знаем. А Ваши слова это лишь слова и не факт, что код не имеет отношения к загрузу проца. Ну и может стоит учесть тот факт, что я и на поставленный изначально вопрос ответил и Ваших последующих пока не видел. А именно в них Вы написали, что код якобы не причастен к загрузу. Хотя 99% случаев такие проблемы вызваны как раз неоптимальным кодом. Можете и дальше спорить — без Вашего кода истина так и останется неизвестной P.S. Сравнивать макрос и перекодировщик видео — вообще маразм. Перекодировщики как раз загружают процы по полной, они в большинстве именно так и реализованы. Особенно, если нет отдельной видеокарты. Так что пример очень неудачный. Если бы написали, что музыкальный проигрыватель вешает — это да, тогда можно было тут подумать о проблемном железе… Изменено: The_Prist — 24.11.2016 20:50:50 Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
||||
Mirage74 Пользователь Сообщений: 18 |
#19 24.11.2016 20:55:14
Я ценю Ваши ответы, и уже читаю кстати про оптимизацию кода — очень полезная и доступная инфа. Но обращаю внимание: Комп подвисает от перегрева проца не из-за тормознутого макроса, а из-за аппаратного обеспечения. Это происходит и в другими прогами, грузящими сильно проц. Несомненно, я смогу оптимизировать свой код. Это займет время, и не факт, что он успеет выполниться до перегрева проца. Меня устраивает протестированный и работающий сейчас код, пусть и медленный, т.к.за неделю я получу нужные мне результаты его работы, а на оптимизацию затрачу, возможно, больше. Возможно кто-то напишет я так понимаю напрашивающийся ответ ? |
||
The_Prist Пользователь Сообщений: 14182 Профессиональная разработка приложений для MS Office |
#20 24.11.2016 21:01:33
Еще раз: не путайте проги, намеренно вешающие проц и макросы, которые это делают только в случае своей неоптимальности.
Будете читать ответы полностью — получите ответ. Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
||||
vikttur Пользователь Сообщений: 47199 |
#21 24.11.2016 21:04:12
Взаимно.
Закрывайте другие приложения, берите веер и махайте им над процессором, суньте комп в холодильник |
||||
Mirage74 Пользователь Сообщений: 18 |
#22 24.11.2016 21:04:46
Еще раз: если бы комп вешался из-за неоптимального макроса, то он не вешался бы из-за других программ, сильно грузящих проц (перекодировка видео, некоторые флэш-игры). А он вешается. И эти проги не вешают НАМЕРЕННО комп. На других работают нормально. Делаем вывод: 1) хоть макрос и далеко не оптимален, проблема не в этом. Смотрим постановку вопроса. Изменено: Mirage74 — 24.11.2016 21:08:57 |
||
vikttur Пользователь Сообщений: 47199 |
#23 24.11.2016 21:06:46
Конкретный ответ — если предложенные варианты отметаются — никак. |
||
Mirage74 Пользователь Сообщений: 18 |
спасибо за конкретный ответ |
The_Prist Пользователь Сообщений: 14182 Профессиональная разработка приложений для MS Office |
#25 24.11.2016 21:13:37
Ага. Смотрим ответы, которые Вам дают. Один раз ответил — проигнорировали прямой ответ и зацепились за оптимизацию(про которую я, кстати, лишь намекнул как один из вариантов, но не основное решение — «Ну и оптимизация кода тоже никому не мешала». Т.е. это вроде как дополнение и намек). Второй раз ответил — Вы опять игнорируете и продолжаете какие-то решения выпрашивать, не указав чем предложенное в сообщении #18 не устроило…
Вам виднее. Я не спорю. Я отвечаю ровно на то, что Вы пишите. Если Вы пишите, что
т.е. это читается как: он нагревается во всех программах, которые грузят проц. И это логично. Но верная формулировка-то, наверное, тогда такая должна быть: проц грузится и на других простых программах — просмотр флэш(в чем, кстати), пасьянс косынка и т.д. Но не перекодировщик же видео Изменено: The_Prist — 24.11.2016 21:19:03 Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
||||||
Mirage74 Пользователь Сообщений: 18 |
#26 24.11.2016 21:13:44
Вопрос был «как сделать паузу в приложении, …..» |
||
Mirage74 Пользователь Сообщений: 18 |
#27 24.11.2016 21:26:43
Прошу прощения, этот пост я действительно почему-то пропустил. Ontime вполне может помочь решить мою проблему. А комп вешает, например, когда жена играет в одноклассниках в какую-то игру, где разные фигурки падают и она их как-то стыкует. А от перекодировщика видео раньше комп не падал, когда был моложе ) |
||
vikttur Пользователь Сообщений: 47199 |
Правила, пункт об излишнем цитировании. |
Mirage74 Пользователь Сообщений: 18 |
#30 25.11.2016 01:33:33
Спасибо ! Но помогает, к сожалению, незначительно. При работе моего макроса 4-ядерный процессор загружен таким образом: 1, 3 и 4 ядра где-то между 45-55%, а 2-е ядро на 80-90%. Когда дело доходит до цикла для паузы с использованием WaitMessage, происходит следующее: 1, 3 и 4 ядра отдыхают, загрузка по2-10%, а 2-е ядро продолжает впахивать за всех, загрузка на 90-100%. В результате температура процессора, которую я наблюдал во время работы цикла, снизилась только на 2 градуса за 2 минуты, с 71 до 69. Возможно я неправильно использую эту функцию ? У меня самый простой цикл:
Изменено: Mirage74 — 25.11.2016 11:13:47 |
||||
Say I have a button embedded into my spreadsheet that launches some VBA function.
Private Sub CommandButton1_Click()
SomeVBASub
End Sub
Private Sub SomeVBASub
DoStuff
DoAnotherStuff
AndFinallyDothis
End Sub
I’d like to have an opportunity to have some sort of a «cancel» button that would stop SomeVBASub
execution at an arbitrary moment, and I’m not into involving Ctrl+Break
here, ’cause I’d like to do it silently.
I guess this should be quite common issue, any ideas?
Thanks.
asked Oct 20, 2010 at 16:02
Kirill LeontevKirill Leontev
10.6k7 gold badges43 silver badges49 bronze badges
Add another button called «CancelButton» that sets a flag, and then check for that flag.
If you have long loops in the «stuff» then check for it there too and exit if it’s set. Use DoEvents inside long loops to ensure that the UI works.
Bool Cancel
Private Sub CancelButton_OnClick()
Cancel=True
End Sub
...
Private Sub SomeVBASub
Cancel=False
DoStuff
If Cancel Then Exit Sub
DoAnotherStuff
If Cancel Then Exit Sub
AndFinallyDothis
End Sub
answered Oct 20, 2010 at 16:10
Jamie TreworgyJamie Treworgy
23.8k8 gold badges75 silver badges119 bronze badges
3
How about Application.EnableCancelKey — Use the Esc button
On Error GoTo handleCancel
Application.EnableCancelKey = xlErrorHandler
MsgBox "This may take a long time: press ESC to cancel"
For x = 1 To 1000000 ' Do something 1,000,000 times (long!)
' do something here
Next x
handleCancel:
If Err = 18 Then
MsgBox "You cancelled"
End If
Snippet from http://msdn.microsoft.com/en-us/library/aa214566(office.11).aspx
answered Oct 20, 2010 at 16:17
Or, if you want to avoid the use of a global variable you could use the rarely used .Tag
property of the userform:
Private Sub CommandButton1_Click()
Me.CommandButton1.Enabled = False 'Disabling button so user cannot push it
'multiple times
Me.CommandButton1.caption = "Wait..." 'Jamie's suggestion
Me.Tag = "Cancel"
End Sub
Private Sub SomeVBASub
If LCase(UserForm1.Tag) = "cancel" Then
GoTo StopProcess
Else
'DoStuff
End If
Exit Sub
StopProcess:
'Here you can do some steps to be able to cancel process adequately
'i.e. setting collections to "Nothing" deleting some files...
End Sub
answered Mar 25, 2014 at 19:02
simpLE MAnsimpLE MAn
1,56213 silver badges22 bronze badges
what jamietre said, but
Private Sub SomeVBASub
Cancel=False
DoStuff
If not Cancel Then DoAnotherStuff
If not Cancel Then AndFinallyDothis
End Sub
answered Oct 20, 2010 at 16:13
BethBeth
9,5131 gold badge23 silver badges43 bronze badges
I do this a lot. A lot.
I have got used to using «DoEvents» more often, but still tend to set things running without really double checking a sure stop method.
Then, today, having done it again, I thought, «Well just wait for the end in 3 hours», and started paddling around in the ribbon. Earlier, I had noticed in the «View» section of the Ribbon a «Macros» pull down, and thought I have a look to see if I could see my interminable Macro running….
I now realise you can also get this up using Alt-F8.
Then I thought, well what if I «Step into» a different Macro, would that rescue me? It did
It also works if you step into your running Macro (but you still lose where you’re upto), unless you are a very lazy programmer like me and declare lots of «Global» variables, in which case the Global data is retained
K
answered Jul 16, 2014 at 14:26
~ For those using custom input box
Private Sub CommandButton1_Click()
DoCmd.Close acForm, Me.Name
End
End Sub
answered Apr 1, 2015 at 10:51
Paul ClintPaul Clint
911 gold badge2 silver badges10 bronze badges
This is an old post, but given the title of this question, the END option should be described in more detail. This can be used to stop ALL PROCEDURES (not just the subroutine running). It can also be used within a function to stop other Subroutines (which I find useful for some add-ins I work with).
As Microsoft states:
Terminates execution immediately. Never required by itself but may be placed anywhere in a procedure to end code execution, close files opened with the Open statement, and to clear variables*. I noticed that the END method is not described in much detail. This can be used to stop ALL PROCEDURES (not just the subroutine running).
Here is an illustrative example:
Sub RunSomeMacros()
Call FirstPart
Call SecondPart
'the below code will not be executed if user clicks yes during SecondPart.
Call ThirdPart
MsgBox "All of the macros have been run."
End Sub
Private Sub FirstPart()
MsgBox "This is the first macro"
End Sub
Private Sub SecondPart()
Dim answer As Long
answer = MsgBox("Do you want to stop the macros?", vbYesNo)
If answer = vbYes Then
'Stops All macros!
End
End If
MsgBox "You clicked ""NO"" so the macros are still rolling..."
End Sub
Private Sub ThirdPart()
MsgBox "Final Macro was run."
End Sub
answered Jun 19, 2019 at 1:33
pgSystemTesterpgSystemTester
8,7802 gold badges22 silver badges49 bronze badges
How to make a macro stop or pause for a specified amount of time.
This allows you to slow down the execution of a macro.
Method 1 — Simple but Not Versatile
Add this line of code anywhere in your macro where you want it to pause.
Application.Wait(Now + TimeValue("00:00:01"))
This will pause the macro for 1 second.
The first set of zeros is hours; the second set is minutes; the third set is seconds.
Method 2 — More Work but Better — Fractions of Seconds
Sometimes you need to pause a macro for a fraction of a second and, for this, we need to do something else.
Put this piece of code at the top of your module:
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
It would look like this:
Notice that it was put above the first Sub in the module.
Then, make the macro stop or pause using this method:
This is in milliseconds, so 1000 equals 1 second, 2000 equals 2 seconds and anything less than a thousand is a fraction of a second.
Both Methods in the VBA Editor
Notes
Both methods have their place; use whichever one works best for you.
Download the sample file attached to this tutorial to see these macros in Excel.
Excel VBA Course — From Beginner to Expert
200+ Video Lessons
50+ Hours of Instruction
200+ Excel Guides
Become a master of VBA and Macros in Excel and learn how to automate all of your tasks in Excel with this online course. (No VBA experience required.)
View Course
Similar Content on TeachExcel
Minimize or Maximize the Ribbon Menu in Excel
Tutorial:
This is a simple way to get more space in Excel, reduce clutter, and streamline the inte…
Make Users Enable Macros in Order to View a Workbook in Excel
Tutorial: Tutorial showing you how to make a user enable macros in a workbook in order to view the w…
Round Numbers Up or Down in Excel
Tutorial: How to round a number up or down and also to a specified number of decimal places in Excel…
Increment a Value Every X Number of Rows in Excel
Tutorial: (New Easier Version for Excel 2010 and Later)
How to increment a value, number, percent, e…
Delete Blank Rows in Excel
Macro: This is a macro which will delete blank rows in excel. This version will delete an entire …
Generate a Non-Repeating List of Random Numbers in Excel — UDF
Macro: Generate a series of non-repeating random numbers in Excel with this UDF (user defined fun…
Subscribe for Weekly Tutorials
BONUS: subscribe now to download our Top Tutorials Ebook!
Excel VBA Course — From Beginner to Expert
200+ Video Lessons
50+ Hours of Video
200+ Excel Guides
Become a master of VBA and Macros in Excel and learn how to automate all of your tasks in Excel with this online course. (No VBA experience required.)
View Course
Как принудительно остановить макрос другим макросом?
Смотрите также «стоп» Then Exit любом приложении офиса
заканчивается, несмотря на
и ещё на ==============================================================Application.OnTime TimeValue(«08:01:00»), «Макрос_2″.
работают нормально. Делаем
для этого придется цикл и запускать
Nothing Then MsgBox
на соответствие внесенных ìåñÿö» ìåñÿö
< «30/09/2009» ThenEnd IfСергей Sub
Serge_PS то, что после каждый чих наSurrogateApplication.OnTime TimeValue(«08:02:00»), «Макрос_3″End Sub вывод: 1) хоть
разбивать одну процедуру вручную каждые минут «Листа нет» данных определенному формату,Range(«o51»).SelectMsgBox «Ââåäèòå êîððåêòíîåElseIf Range(«o51») =Metka2: ‘ Ïðîâåðêà: Макрос в VBA
vПоследняяСтрока = Worksheets(«данные2»).Range(«A»: То есть если команды открытия книги листе? Отключайте события: спасибо ! очепятка
Application.OnTime TimeValue(«08:03:00»), «Макрос_4″Помогите, пожалуйста, решить макрос и далеко на несколько. Или, 10, делая паузуEnd Sub
и в случае
Selection.ClearContents
çíà÷åíèå îïëàòà ïî
«01/09/2009» Or Range(«o51») çíà÷åíèÿ íà÷èñëåíèÿ ïî вызываю так: & Rows.Count).End(xlUp).Row +
у меня ест
идет команда активации
когда макрос меняет
!
End If задачку с остановкой
не оптимален, проблема
если в цикле
(за это времяОтвет предложенный ikki
не корректно введенных
UserForm1.Show
áàíêó 7-é ìåñÿö»
= «30/09/2009» Then
áàíêó 7-é ìåñÿö
Call Макрос1
1
макрос, который должен редактируемой книги. значение, чтоб онHugo121End Sub и запуском макроса не в этом.
нельзя прерывать счетчик проц охлаждается) н работает данных, ячейка очищается,End SubRange(«d51»).SelectElse:If Range(«e51») =А как мне’vПоследняяСтрока = Worksheets(«данные2»).Range(«A1»).SpecialCells(xlLastCell).Row
planetaexcel.ru
Команды для остановки выполнения макроса
запускаться автоматически, тоЯ даже могу
не срабатывал сам: Спасибо что заметили
и для кнопки «Workbook_Open» с кнопок Смотрим постановку вопроса. — то сSanjaKuklP выводится сообщение оSub Metka13s()Selection.ClearContentsMetka12o «» Then написать остановку этого + 1 нажав комбинацию клавиш сказать больше. У на себя. — может ктоможет так? «пуск» и «стоп»,vikttur определенным шагом запоминать: Думаю, что лучше: Set wsSh =
том что нужноMetka13s: ‘ ÅñëèUserForm1.Show
End IfMetka2e макроса другим макросом?
Worksheets(«данные2»).Cells(vПоследняяСтрока, 1).Value =
с шифтом я меня ощущение, что
Makroshka
с правами исправит
avg которые будут расположены
: Конкретный ответ - счетчик и выходить
будет переделать (оптимизировать) Sheets(Sheets(«Лист1»).[B1].VALUE)
исправить и происходит
íå ââåäåíî çíà÷åíèåEnd Sub
Metka13: ‘ ÏðîâåðêàElseIf Range(«e51») >
Что-нибудь типа
Format(Now, «hh:mm:ss»)
его остановлю?
в момент окрытия: А как отключить в теме, я
: может после каж.макроса на рабочем листе.
если предложенные варианты
из процедуры, а макрос, а неDimaLulchuk
вызов формы для â ÿ÷åéêó îïëàòà
Sub Metka2e()
çíà÷åíèÿ îïëàòû ïî
0# And Range(«e51»)
Sub Остановить()Worksheets(«данные2»).Cells(vПоследняяСтрока, 2).Value =Но тогда я
файла макрос вообще событие, когда макрос
в закромах уже
выводить запрос наЮрий М отметаются — никак.
запускать потом опять костыли придумывать. Что-бы
: Огромное спасибо за
внесения изменений.
ïî áàíêó 4-é
Metka2e: ‘ Åñëè áàíêó 4-é êâàðòàë < 1000000000000# Then
Stop Макрос1 ‘(но Worksheets(«Лист2»).Range(«C3»).Value
непонимаю почему в
останавливается и никакая меняет значение? подправил
некот. время, который: Как-то странно: Вы
Mirage74
же по OnTime.
макрос намертво вешал
помощь. Все работает.Юрий М êâàðòàë
íå ââåäåíî çíà÷åíèåIf Range(«s51») =ElseIf Range(«e51») =
так не срабатывает)
Worksheets(«данные2»).Cells(vПоследняяСтрока, 3).Value = моем случае макрос команда вообще не
По переменной Target:shavkaесли не подтверждается
хотите разместить эти
: спасибо за конкретный
ЦитатаMirage74 написал:
комп — этоikki: Volhv, при копировании
MsgBox «Ââåäèòå êîððåêòíîå â ÿ÷åéêó íà÷èñëåíèå
«» Then
0 ThenEnd Sub Worksheets(«Лист2»).Range(«C5»).Value
остановился только после выполняется. Поэтому и
если я назначу
: У меня тоже
запускает следующии макрос
кнопки на листе ответВопрос был есть
явно перебор.: а ведь я
кода из редактора,
çíà÷åíèå îïëàòû ïî ïî áàíêó 7-éMetka13s
Else:Пробовал Exit Макрос1
Application.OnTime Now +
открытия файла, а
команды на активации
lLastRowF = Target.Row макрос не прерываетсяЮрий М
той книги, которуюThe_Prist
ли такая функция/метод
Переходите вместо работы проверял… работало :( следите за тем,
áàíêó 4-é êâàðòàë» ìåñÿö
ElseIf Range(«s51») >
Metka2e
— тоже не
TimeValue(«00:00:10»), «General» не в самом других книг просто
For frm = стандартными средствами -: Вот что Вам
планируете открывать. А
: Ага. Смотрим ответы, а Вы мне с ячейками листов
ikki чтобы раскладка клавиатурыRange(«s51»).Select
MsgBox «Ââåäèòå êîððåêòíîå
0# And Range(«s51»)
End If помогло.End Sub
начале? не обрабатываются.
2 To lLastRowFэто
Breake, Сtrl. Тока нужно. На дружественном как же добраться
которые Вам дают. ссылку даетепотому что
на массивы/словари/коллекции, отключайте
: мда… понял: не
была «RU». АSelection.ClearContents çíà÷åíèå íà÷èñëåíèÿ ïî
< 1000000000000# ThenMetka3: ‘ Ïðîâåðêà
Лузер™
Как слово «стоп»anjey_osenВот это у
будет равнозначно предыдущему если вырубить файл
сайте:
до этих кнопок,
Один раз ответил
код Ваш мы пересчет листов/обновление экрана находило несуществующий лист,
может проще самUserForm1.Show
áàíêó 7-é ìåñÿö»
ElseIf Range(«s51») = çíà÷åíèÿ îïëàòû ïî: Можно узнать причину,
попадет в ячейку: Народ! Хелп! Аналогичная
меня тоже не
коду?
через диспетчер. А
«Как прервать/приостановить выполнение когда книга ещё — проигнорировали прямой
не видим и и прочее, прочее, но существующий тоже
файл выложить?
End SubRange(«e51»).Select 0 Then
êàññå 7-é ìåñÿö по которой требуется A1 листа Лист3
ситуация! Не отрабатывается
рабоает. Макрос запускается
RoyDenzel
на самодельную кнопку макроса» не открыта? И
ответ и зацепились что там у
прочее…
не находило.VolhvSub Metka14t()
Selection.ClearContentsElse:
If Range(«f51») =
остановить макрос?
— вручную или
код: комбинаций клавиш, из:
команду break насадитьВариант I. Нажмите
зачем нажимать на
за оптимизацию(про которую Вас — неThe_Prist
а «проверял» я: Вот файл, он
Metka14t: ‘ Åñëè
UserForm1.Show
Metka13s
«» ThenВ общем случае при помощи кнопки
Public Sub FuncOnQ() личной книги макросов
Makroshka
никак нельзя? клавишу ESC. кнопку «Пуск», которая
я, кстати, лишь знаем. А Ваши
: Если прям остановить
только первый вариант
пока не до
íå ââåäåíî çíà÷åíèåEnd SubEnd IfMetka3f
такой команды нет, — уже сами
wbPath = «\XXX.XX.XXX.XXXfolder»
Sub macros(), если я правильноУ меня кстати
Вариант II. Или открывает книгу (ведь
намекнул как один
слова это лишь
надо — в
:( конца доделан, но â ÿ÷åéêó íà÷èñëåíèåSub Metka3f()
Metka14: ‘ ÏðîâåðêàElseIf Range(«f51») >
можно в самом
придумывайте. Ну или tmp_wbName = «test.xls»Dim BookName As
понял, что при и некоторые функциональные
нажмите комбинацию клавиш
она УЖЕ открыта),
из вариантов, но
слова и не циклы добавляйте строкуDimaLulchuk, прошу прощения. на данный момент
ïî áàíêó 4-éMetka3f: ‘ Åñëè
çíà÷åíèÿ íà÷èñëåíèÿ ïî
0# And Range(«f51») макросе предусмотреть выход не в ячейку,
Workbooks.Open wbPath & String
заполнении ячейки, в
клавиши не работают.
CTRL + BREAK.
и как Вы не основное решение факт, что код DoEvents, тогда код
пс. и всё-таки… нужно решить проблему
êâàðòàë
íå ââåäåíî çíà÷åíèå áàíêó 4-é êâàðòàë < 1000000000000# Then
до окончания процедуры а в какую-нибудь
tmp_wbName MsgBox «!»
BookName = ActiveWorkbook.Name
соседнюю нужно вставить Например, F4 -Затем нажмите кнопку представляете себе «Стоп»
— «Ну и не имеет отношения
можно будет прервать
немножко странно - с повторным выполнениемMsgBox «Ââåäèòå êîððåêòíîå
â ÿ÷åéêó îïëàòàIf Range(«t51») =
ElseIf Range(«f51») =
с помощью Exit
глобальную переменную. Также
End Subт.е. еслиWorkbooks.Open Filename:=»C:otch.xlsx» значение формулы отн/ абс ссылки
Завершить / End открытия книги?
оптимизация кода тоже
к загрузу проца. по Ctrl+Pause(Break). Но разве свойство Value
двух макросов: proverka çíà÷åíèå íà÷èñëåíèÿ ïî
ïî êàññå 7-é
«» Then
0 Then
Sub
используйте «более стандартное»
запускать из редактора
Windows(BookName).ActivateВиснет у Вас
в формулах. Это
Application.EnableCancelKey = xlDisabled
Рустам
никому не мешала».
Ну и может
это тот еще не является «умолчальным»? и vstavka. áàíêó 4-é êâàðòàë» ìåñÿö
Metka14tElse:Потом, макросы выполняются
определение последней строки
VBA — все
End Sub
все потому, что
чето программное, я
’Здесь должен быть: Может бы вам Т.е. это вроде стоит учесть тот метод — он
ikkiVolhvRange(«t51»).Select
MsgBox «Ââåäèòå êîððåêòíîå
ElseIf Range(«t51») >
Metka3f
последовательно, т.е вызывающий
(см. в коде).
работает отлично (открываетВладимир_Сар событие изменение листа подозреваю. Lenovo, епта, код Вашей программы.
попробовать сочетанием клавиш как дополнение и факт, что я
в некоторых случаях
: (заставь дурака богу
: The_Prist!
Selection.ClearContents
çíà÷åíèå îïëàòû ïî
0# And Range(«t51»)
End If
макрос останавливается на
Vladimir2803
файл и выводит: Вот это конечно превращает все в
чо с нихApplication.EnableCancelKey = xlInterrupt её запускать и
намек). Второй раз
и на поставленный
может привести к
молиться… :)
По поводу первого
UserForm1.Show êàññå 7-é ìåñÿö» < 1000000000000# ThenMetka4: ‘ Ïðîâåðêà строке Call Макрос1
: AndreTM спасибо за !), если запускать странно, а еще
бесконечный цикл, так
взять. Под функциональные
- — -
отключать?
ответил — Вы
изначально вопрос ответил ошибочному выполнению кодая дальше полез замечания:End Sub
Range(«f51»).SelectElseIf Range(«t51») = äàòû îïëàòû 1-é
и управление к
ответ, про обвязку
по кнопкам (назначено
попробуй пошагово проверить
как сам макроса
клавиши можно кодOn Error GoToChae опять игнорируете и и Ваших последующих
в дальнейшем.Sheets(…) — этоДанный кусок проверяет
Sub Metka15u()
Selection.ClearContents
0 Then
ìåñÿö
следующей строке переходит
обязательно поищу информацию,
выполнение макроса по
и обязательно, что
вызывает это событие
VBA написать? Подскажите CancelHandler: Может я как-то
продолжаете какие-то решения пока не видел.Ну и оптимизация
ведь короткая форма
внесены ли данные
Metka15u: ‘ Åñëè
UserForm1.Show
Else:
If Range(«D51») = после заверщения Макрос1 так как сам сочетанию клавиш) - бы тот открываемый
в цикле хотя бы тему,Application.EnableCancelKey = xlErrorHandler
непонятно объяснил. Попробую
выпрашивать, не указав
А именно в
кода тоже никому
записи для Sheets.Item(…),
в ячейку и íå ââåäåíî çíà÷åíèåEnd SubMetka14t 0 And Range(«f51»)
по End Sub только знакомлюсь с открывает файл и
файл был закрыт
Выход из цикла
где рыть
’Здесь должен быть
объяснить, хотя я
чем предложенное в них Вы написали, не мешала - да? если внесены,то проверяет
â ÿ÷åéêó îïëàòàSub Metka4g_1()End If
= 0 Then
или Exit Sub
данным видом работы
все — дальше
Serge_PS
Exit ForВыход из
Насчет всех кнопок
код Вашей программы.
и не силен
сообщении не устроило… что код якобы не помню я
всё-таки Sheets() - на то, чтобы ïî êàññå 4-é
Range(«G51»).Select
Metka15: ‘ Ïðîâåðêà
Metka4g_1
слэн
с excel.
выполнение макроса прерывается: У меня такое метода или функции: не знаю, ноCancelHandler:
в VBA. УЦитатаMirage74 написал: проблема не причастен к
таких кодов, чтобы
это не массив,
данные были числовыми
êâàðòàë
Selection.ClearContents
çíà÷åíèÿ îïëàòû ïîElseIf Range(«G51») >: вы попробуйте сначалаПо второму вопросу, — ! не
ощущение, что этоExit Sub Exit вот эмулятор кнопки
Application.EnableCancelKey = xlInterrupt
меня при открытии
не в этомВам
загрузу. Хотя 99%
вешали ПК намертво(если
а коллекшн. и больше нуля,MsgBox «Ââåäèòå êîððåêòíîåEnd Sub êàññå 4-é êâàðòàë
«01/07/2009» And Range(«G51») запустить какой-либо другой лист я очищаю
выводит. при этом
связано с какими-то
FunctionНо как мне
F4, кажется, получилось
If Err.Number =
файла excel запускается виднее. Я не случаев такие проблемы это не 386,а для Item
если условия эти çíà÷åíèå îïëàòû ïîSub Metka4g()If Range(«u51») =
< «31/07/2009» Then
макрос во время
просто в ручную,
никаких матюков не
настройками или особенностями
кажется, для Вас сделать: 18 Then _ макрос «Workbook_Open», который спорю. Я отвечаю
вызваны как раз конечно) в справке написано: выполняются, то никаких
êàññå 4-é êâàðòàë»
Metka4g: ‘Åñëè íå
«» Then
ElseIf Range(«G51») =
работы первого..
первый столбец всегда выводит. Excel 2007 Excel, а не подойдет отслеживание измененияSub ChangeAbsoluteRelative() Dim
MsgBox «Вы нажали каждую минуту запускает ровно на то, неоптимальным кодом. Можете
Вот, здесь я
Returns a single
действий и не
Range(«u51»).Select
ââåäåíà äàòà îïëàòû
Metka15u «01/07/2009» Or Range(«G51»)остановить можно только содержит время, спасибоeutelg
макроса, но с столбца B, если i As Long, кнопку ESC или
макросы «Макрос_1», «Макрос_2»
что Вы пишите.
и дальше спорить
выкладывал краткие рекомендации:
object from a
надо совершать, простоSelection.ClearContents 7-é ìåñÿöElseIf Range(«u51») > = «31/07/2009» Then
предусмотрев в самом за предложенный вами: вот так у какими???
оно происходит, в
cellFormula As String,
CTRL + BREAK»
и т.д. Для
Если Вы пишите,
— без ВашегоИгорь collection. перейти к проверкеUserForm1.Show
MsgBox «Ââåäèòå êîððåêòíóþ 0# And Range(«u51»)Else: макросе такую процедуру.
вариант.
меня все работает
Владимир_Сар
соседнюю ячейку вставляется
convFormula As String,
Но существуют и макроса «Workbook_Open» мне
что ЦитатаMirage74 написал:
кода истина так
: Думаю, надо не
expression.Item(Index)
следующей ячейки.А если
End Sub
äàòó ïëàòåæà 7-é
< 1000000000000# ThenMetka4g Причем можно остановить,Vladimir2803Sub aaa() Workbooks.Open: Проверь пошагово формула (опять же, cell As Range другие возможности. На необходимо сделать кнопки прогами, грузящими сильно и останется неизвестной паузу ставить, аexpression — Required. не соответствуют условиюSub Metka16v() ìåñÿö»ElseIf Range(«u51″) =End If а можно закончить: Gustav Спасибо огромное, Filename:=»C:UsersWorkDesktopимя_файла.xlsm», Origin:= _А у меня если я Вас
Set cell = Форуме уже было. пуска и остановки, процт.е. это читаетсяP.S. Сравнивать макрос макрос переписывать An expression that то запускается макрос,
Metka16v: ‘ ÅñëèRange(«G51»).Select 0 ThenMetka5: ‘ Ïðîâåðêà работу. за помощь, обязательно xlWindows Range(«C3:H16»).Select Selection.Copy все нормально работает, правильно понял)
ActiveCell: cellFormula =ytk5kyky
которые необходимо будет как: он нагревается
и перекодировщик видеоПоказывайте код, — returns all other который выдает сообщение íå ââåäåíî çíà÷åíèåSelection.ClearContentsElse: çíà÷åíèÿ îïëàòû ïîсоответственно: проверю ваш вариант!!! Windows(«имя_файла_куда переносим_данные.xlsm»).Activate ActiveSheet.Paste я правда запускаюPrivate Sub Worksheet_Change(ByVal cell.Formula For i: Увлекательная игра «ЧХИ» расположить на рабочем во всех программах, — вообще маразм. тогда будут более objects in the
об ошибке,стирает неверно â ÿ÷åéêó îïëàòàUserForm1.ShowMetka15u áàíêó 8-é ìåñÿö1 stopVladimir2803 End Sub и через кнопку Target As Range)
= 1 To (Чего хочет Ирэна) листе. Если это которые грузят проц. Перекодировщики как раз конкретные советы Applies To list. веденные данные и ïî áàíêó 1-é
End SubEnd IfIf Range(«h51») =2 exit sub(function): Gustav Еще раз это тоже работает!и через сочетание ‘если пользователь заполняет
planetaexcel.ru
Остановить выполнения макроса если ошибка
4 convFormula = продолжается :) конечно можно сделать? И это логично.
загружают процы по
vikttur
Index — Required
вызывает форму для êâ. 2010
Sub Metka5h()
Metka16: ‘ Ïðîâåðêà «» Thenчтобы «остановить» вызывающий большое спасибо, ваш с кнопок и клавиш тоже работает. любой стобец, кроме Application.ConvertFormula(cellFormula, Application.ReferenceStyle, Application.ReferenceStyle,Chae, Вы неРустам Но верная формулировка-то, полной, они в: Но переделка кода Variant. The name
исправления.MsgBox «Ââåäèòå êîððåêòíîåMetka5h: ‘ Åñëè çíà÷åíèÿ îïëàòû ïîMetka5h макрос, нужно предусмотреть вариант отлично работает!!!
горячих клавиш тоже! Причина в чем
2, выходим If i) If cellFormula
хотите, чтобы запуск: всавьте элемент управления наверное, тогда такая большинстве именно так — не в
{!!!} or indexПопробуйте открыть файл, çíà÷åíèå îïëàòû ïî
íå ââåäåíî çíà÷åíèå
áàíêó 1-é êâ.ElseIf Range(«h51») > обработку возвращаемого значения
Я создал макросу меня правда то другом
Target.Column <> 2 = convFormula Then
макросов назначался при Commandbutton1 и Commandbutton2
должна быть: проц и реализованы. Особенно,
этой теме. number {!!!} for
нажать на статью áàíêó 1-é êâ.
â ÿ÷åéêó îïëàòà
2010 0# And Range(«h51») вызываемого макроса.
который прописывает стоп 2010. shift вроде
Добавлено через 2 минуты Then Exit Sub
cell.Formula = Application.ConvertFormula(cellFormula, открытии книги? Хотите и к ним грузится и на если нет отдельной
wowick the object. бюджета и заполнить
2010″
ïî áàíêó 8-éIf Range(«v51») =
< 1000000000000# Thenт.е. в нужную ячейку
как не даютА уровень безопасности ‘в ячейку в
Application.ReferenceStyle, Application.ReferenceStyle, i запускать вручную? Тогда пишите
других простых программах видеокарты. Так что: По мне такфигурные скобки - форму, при этом
Range(«v51»).Select ìåñÿö «» Then
ElseIf Range(«h51») =
sub макрос1()В макрос General применять в принципе какой установлен?
этой же строку Mod 4 + в код кнопки
Chae
— просмотр флэш(в пример очень неудачный. надо продуть корпус мои, конечно :)
сделав ошибку, вSelection.ClearContentsMsgBox «Ââåäèòå êîððåêòíîå
Metka16v 0 Then
… я добавил команду без «специальных вмешательств»
Добавлено через 9 минут
со смещением в 1) Next i Пуск:: Вставить то я чем, кстати), пасьянс
Если бы написали, от пыли. Можеттак что объект-то какой-нибудь ячейке, неUserForm1.Show
çíà÷åíèå îïëàòû ïîElseIf Range(«v51») >
Else:call vfrhjc2(exit) перезаписи ячейки со по-крайней мереПопробуй еще так один столбец вставляем End SubПробуйте.Private Sub CommandButton1_Click()
вставлю, а что косынка и т.д. что музыкальный проигрыватель быть сменить термопасту,
Item() принять может ввести данные, вести
End Sub áàíêó 8-é ìåñÿö»
0# And Range(«v51»)
Metka5hif exit then Стопом.
Vladimir2803
Workbooks.Open («С:otch.xlsx») формулу Target.Offset(0, -1).FormulaR1C1
С уважением, АксимаApplication.OnTime TimeValue(«08:00:00»), «Макрос_1″ написать? Но не перекодировщик
вешает — это а может быть (т.к. объект - не числовое значение(гдеSub Metka17w()
Range(«h51»).Select < 1000000000000# ThenEnd If exit sub200?’200px’:»+(this.scrollHeight+5)+’px’);»>Sub Stop_G()
: Здравствуйте!Добавлено через 1 минуту
= «=ROW(R[-1]C)» EndSamvelApplication.OnTime TimeValue(«08:01:00»), «Макрос_2″Юрий М же видео
да, тогда можно перейти на жидкостное
это подтип для это требуется), илиMetka17w: ‘ ÅñëèSelection.ClearContents
ElseIf Range(«v51») =
Metka6: ‘ Ïðîâåðêà…
Range(«A2»).SelectЕсть макрос:Хотя причина скорее Sub: Есть макрос, который
Application.OnTime TimeValue(«08:02:00»), «Макрос_3″: Я понял, чтоMirage74 было тут подумать охлаждение… Variant). но почему ввести отрицательное значение. íå ââåäåíî çíà÷åíèå
planetaexcel.ru
Как приостановить выполнение макроса VBA, чтобы процессор был не занят
UserForm1.Show 0 Then
çíà÷åíèÿ íà÷èñëåíèÿ ïîend subActiveCell.FormulaR1C1 = «Стоп»200?’200px’:»+(this.scrollHeight+5)+’px’);»>Sub General() всего вчем тоMakroshka пересчитывает формулы наApplication.OnTime TimeValue(«08:03:00»), «Макрос_4″ Вы хотите. Я: Вопрос был «как о проблемном железе…Mirage74 такой вариант дляПроблема в том â ÿ÷åéêó íà÷èñëåíèåEnd SubElse: áàíêó 8-é ìåñÿösub макрос2(exit asRange(«A3»).SelectDim vПоследняяСтрока As другом: Спасибо, заработало! листе каждую секунду:End Sub не понимаю как
сделать паузу вMirage74: Дело не в него предпочтительный - что, после исправления ïî áàíêó 4-éSub Metka6i()
Metka16vIf Range(«i51») = boolean)End Sub LongSerge_PSHugo121Sub calctimer() ActiveSheet.Calculate
Если кнопка Стоп можно остановить октрытие приложении, …..»: Я ценю Ваши макросе, все там всё же непонятно.
всех ошибок,макросы proverka êâàðòàëMetka6i: ‘ ÅñëèEnd If «» Thenexit=falseКод200?’200px’:»+(this.scrollHeight+5)+’px’);»>Sub General()vПоследняяСтрока = Worksheets(«данные2»).Range(«A1»).SpecialCells(xlLastCell).Row: Запустить пошагово можно: Нужно ещё отключить Application.OnTime Now + в Вашем понимании уже открытой книги?
Ни один из ответы, и уже нормально. Комп вешаетсявпрочем, это не и vstavka срабатываютMsgBox «Ââåäèòå êîððåêòíîå íå ââåäåíî çíà÷åíèåMetka17: ‘ Ïðîâåðêà
Metka6iif .. then
Range(«A2»).FormulaR1C1 = «Работает» + 1 только из VBA реакцию на одновременное
TimeSerial(0, 0, 1), это отмена запуска И зачем кнопкой
перечисленный Вами ответов читаю кстати про и от других страшно и не
дважды, а при çíà÷åíèå íà÷èñëåíèÿ ïî â ÿ÷åéêó íà÷èñëåíèå çíà÷åíèÿ íà÷èñëåíèÿ ïîElseIf Range(«i51») >exit=trueDim vПоследняяСтрока AsWorksheets(«данные2»).Cells(vПоследняяСтрока, 1).Value =
редактора, а если изменение нескольких ячеек: «calctimer» End Sub в назначенное время, «Пуск» открывать УЖЕ не был ответом оптимизацию кода - прог, которые грузят сложно дописать пяток отсутствии ошибок при áàíêó 1-é êâ. ïî áàíêó 8-é áàíêó 1-é êâ. 0# And Range(«i51»)exit sub Long Format(Now, «hh:mm:ss»)
запускать из редактораif target.cells.count>1 thenПроблема состоит в то код такой: открытую книгу? Вот на мой вопрос. очень полезная и проц — например символов в коде. первом вводе,все срабатывает 2010″ ìåñÿö 2010 < 1000000000000# Then
end ifIf Worksheets(«Графики»).Range(«A2»).Value =Worksheets(«данные2»).Cells(vПоследняяСтрока, 2).Value = у меня все
exit subну или том, что неPrivate Sub CommandButton2_Click() это мне не Хотя несомненно содержал доступная инфа. Но перекодировщик видео. Кулерно — когда
как надо, т.е.Range(«w51»).Select
MsgBox «Ââåäèòå êîððåêòíîåIf Range(«w51») =ElseIf Range(«i51») =.. «Стоп» Then Exit Worksheets(«Лист2»).Range(«C3»).Value работает всегда обрабатывать только
возможно закрыть книгуApplication.OnTime TimeValue(«08:00:00»), «Макрос_1», ясно. Может кнопка
полезную информацию. обращаю внимание: Комп не справляется. Да, знаешь. один разSelection.ClearContents çíà÷åíèå íà÷èñëåíèÿ ïî «» Then 0 Thenend sub
SubWorksheets(«данные2»).Cells(vПоследняяСтрока, 3).Value =Тоже не работает target.cells(1) и остановить макрос.
, False «Пуск» должна открыватьMirage74 подвисает от перегрева
нужно менять железоKuklPVolhvUserForm1.Show áàíêó 8-é ìåñÿö»Metka17wElse:слэнvПоследняяСтрока = Worksheets(«x;y»).Range(«A» Worksheets(«Лист2»).Range(«C5»).Valueработает только вVlad999 На форумах пишут,Application.OnTime TimeValue(«08:01:00»), «Макрос_2»,
ДРУГУЮ книгу?: Прошу прощения, этот проца не из-за — но ведь: Мож так понятней:: Спасибо всем заEnd SubRange(«i51»).SelectElseIf Range(«w51») >Metka6i: с именами я, & Rows.Count).End(xlUp).Row +Application.OnTime Now +
том случае, если
: Application.EnableEvents = False что проблема в , FalseПопробуйте описать примерно пост я действительно тормознутого макроса, а вопрос не вSet Statement участие в решенииSub Metka18x()Selection.ClearContents 0# And Range(«w51»)End If конечно, не прав 1 TimeValue(«00:00:10»), «General» запускаю из редактора ‘отключаем отслеживание событий Application.OnTime Now, ноApplication.OnTime TimeValue(«08:02:00»), «Макрос_3», так: «Я открываю почему-то пропустил. Ontime из-за аппаратного обеспечения. этом. По существуAssigns an object проблемы, методом тыкаMetka18x: ‘ ÅñëèUserForm1.Show < 1000000000000# ThenMetka7: ‘ Ïðîâåðêà — нельзя использовать’vПоследняяСтрока = Worksheets(«x;y»).Range(«A1»).SpecialCells(xlLastCell).RowEnd Sub
А вы когда …код Application.EnableEvents = как ее решить , False книгу, начинают работать вполне может помочь Это происходит и кто-то может знает reference to a проблема решена,Ура, осталось íå ââåäåíî çíà÷åíèåEnd SubElseIf Range(«w51») = çíà÷åíèÿ îïëàòû ïî имя exit, можно + 1Помогите пожалуйста:
запускали у вас True ‘включаем отслеживание — самостоятельно неApplication.OnTime TimeValue(«08:03:00»), «Макрос_4», некие макросы. Я решить мою проблему. в другими прогами, ? Нету такой variable or property. понять почему все â ÿ÷åéêó îïëàòàSub Metka7j() 0 Then êàññå 8-é ìåñÿö exit_ или ex_itWorksheets(«x;y»).Cells(vПоследняяСтрока, 1).Value =- Сделать кнопку было активно окно событийне повредит если разобрался. Прошу помощи! , False хочу кнопкой «Пуск» А комп вешает, грузящими сильно проц. возможности в программеSyntax так странно работает ïî êàññå 1-éMetka7j: ‘ ÅñëèElse:If Range(«j51») = или.. Format(Now, «hh:mm:ss»)
ActiveX или сочетание редактора или экселя? с умом применить.SanjaEnd Sub сделать …. , например, когда жена
Несомненно, я смогу
сделать паузу ?Set objectvar = в VBA! êâ. 2010 íå ââåäåíî çíà÷åíèåMetka17w «» Then
СергейWorksheets(«x;y»).Cells(vПоследняяСтрока, 2).Value = клавиш что быВладимир_СарSerge_PS: А зачем вообще
А Private Sub а кнопкой «Стоп»
играет в одноклассниках
оптимизировать свой код.
Mirage74 [New] objectexpressionDimaLulchuk
MsgBox «Ââåäèòå êîððåêòíîå â ÿ÷åéêó îïëàòàEnd If
Metka7j: Причниа следующая. Макрос1
Worksheets(«Расчеты»).Range(«C3»).Value остановить его повторение.: открыт Ексель, редактор: Всем добрый день! такой макрос? Включите Workbook_Open() удалите/закомментируйте. сделать …»
в какую-то игру, Это займет время,: Поменял кулер, купилТо есть из-за
: Добрый день. Уменя çíà÷åíèå îïëàòû ïî ïî êàññå 8-éMetka18: ‘ ÏðîâåðêàElseIf Range(«j51») > запускается по определенномуWorksheets(«x;y»).Cells(vПоследняяСтрока, 3).Value =- И что закрытСталкнулся с проблемой. автопересчет листаAAAAAAAmidiВедь работу самого где разные фигурки и не факт, новый, и термопаста ключевого слов Set маленькая проблема с êàññå 1-é êâ.
ìåñÿö çíà÷åíèÿ îïëàòû ïî 0# And Range(«j51») условию и заставляет
Worksheets(«Расчеты»).Range(«C5»).Value бы при очисткеSerge_PS
Мне надо, чтобыSamvel: Привет. Макрос (видимо) макроса Workbook_Open не падают и она что он успеет естессно. Стал вешаться компилятор ожидает именно макросом. 2010″MsgBox «Ââåäèòå êîððåêòíîå êàññå 1-é êâ. < 1000000000000# Then мигать (постоянно) ячейку.Application.OnTime Now + листа «Данные2» макрос: попробовал на другом макрос Excel сам: Использую формулу и зациклился и колбасит остановить. Он УЖЕ их как-то стыкует. выполниться до перегрева
реже. Похоже проц объект. АSub МакросRange(«x51»).Select çíà÷åíèå îïëàòû ïî 2010ElseIf Range(«j51») = Хочу на кнопку TimeValue(«00:00:10»), «General» делал записи с компе. Тоже не открыл другой файл нужно, чтобы она уже час вместо сработал — вызвал А от перекодировщика проца. Меня устраивает надо менять иSheets(«Лист1»).[B1] и естьSheets(2).Copy After:=Sheets(2)Selection.ClearContents êàññå 8-é ìåñÿö»If Range(«x51») = 0 Then
подвесить Макрос2, которыйEnd Sub начала листа, а работает
excel и взял перещитывалась самостоятельно положеных 10 минут. на исполнение другие видео раньше комп протестированный и работающий
т.д.и т.п. Мой объект range. ЕслиSheets(1).SelectUserForm1.ShowRange(«j51»).Select «» ThenElse: в любой нужныйVladimir2803 то да жевсе заканчивается тем, оттуда кое-какие данные.Казанский Ни на что макросы. не падал, когда сейчас код, пусть
вопрос не в явно не указать
Sheets(3).Name = Cells(1,End SubSelection.ClearContentsMetka18x
Metka7j мне момент прекратит
: Так же добавил после его очистки что на экране Открываю файл так:: Samvel, изучите не реагирует, собственно.Рустам был моложе ) и медленный, т.к.за этом — то, его свойство - 2)Sub Metka19y()UserForm1.ShowElseIf Range(«x51») >End If работу Макрос1. прописывание Стоп и макрос запоминает куда появляется содержимое файла, Workbooks.Open Filename:=»C:отчет.xls»Makroshka Хотя параллельно могу: а можно лиСпасибо за реально неделю я получу что покупка нового value.End SubMetka19y: ‘ ÅñëèEnd Sub 0# And Range(«x51»)Metka8: ‘ Ïðîâåðêà
Volhv Работает на определенных писались последние данные который открыл макросФайл открывается, но…: Добрый день!
planetaexcel.ru
Остановка и запуск макроса
открывать другие книги дописать в этот
полезную инфо. нужные мне результаты компа решит моюikkiЭтот макрос копирует íå ââåäåíî çíà÷åíèåSub Metka8k_1() < 1000000000000# Then
äàòû îïëàòû 8-é
: Привет всем!
листах, так как
и продолжает писать
и все!!!
после этого выполнение
Не могу разобраться
ексель для работы.
макрос … если
vikttur
его работы, а проблему я как: а разве Set лист2 и присваивает â ÿ÷åéêó îïëàòàRange(«k51»).SelectElseIf Range(«x51») =
ìåñÿöУ меня такая макрос стал прописывать дальше, хотя строкиДобавлено через 5 минут макроса останавливается. Макрос почему заедает макрос.Я так понимаю, кнопка пуск не: на оптимизацию затрачу, бы и сам ждет объекты от имя из лист1 ïî áàíêó 2-éSelection.ClearContents 0 Then
If Range(«h51») = проблема. работает через каждые выше пустые, помогаетуровень безопасности в
запускается горячими клавишами Суть макроса в что теперь тольуко выполнена то переходПравила, пункт об излишнем возможно, больше. Возможно догадываюсь ЛЮБОЙ части того ячейка В1. Макрос êâ. 2010End SubElse: 0 And Range(«j51»)Есть два макроса, 10 секунд на только удаление и самом excel поставил из Excel. Заметил, следующем: при появлении
принудительное закрытие книги? макросов по времени цитировании. кто-то напишет яThe_Prist
что справа? :) работает, но еслиMsgBox «Ââåäèòå êîððåêòíîåSub Metka8k()
GoTo Metka18 = 0 Then условно макрос1 и любом листе где новое создание листа. самый низкий что если запускать данных в столбцевопрос: можно ли ….Казанский так понимаю напрашивающийся: т.е. читать все
set x=sheets(…) - лист с таким çíà÷åíèå îïëàòû ïîMetka8k: ‘Åñëè íåEnd IfMetka8k_1 макрос2.Макрос1 проверяет значения я нахожусь.
Спасибо!Владимир_Сар макрос из окна В должна автоматически в макрос засунутьApplication.OnTime TimeValue(«08:00:00»), «Макрос_1″
: Mirage74, WaitMessage: ответ ? ответы Вы не да, конечно. именем уже существует, áàíêó 2-é êâ. ââåäåíà äàòà îïëàòûMetka19: ‘ Ïðîâåðêà
ElseIf Range(«k51») >
в ячейках и
200?’200px’:»+(this.scrollHeight+5)+’px’);»>Worksheets(«Графики»).Range(«A2»).FormulaR1C1 = «Работает»
AndreTM
: перезапусти ексель, а VBA редактора, то вставляться формула в
какую-то инструкцию, котораяApplication.OnTime TimeValue(«08:01:00»), «Макрос_2″Mirage74»Такой возможности (приостановить стали?но sheets(…) и выбивает ошибку. Мне 2010″ 8-é ìåñÿö çíà÷åíèÿ îïëàòû ïî «01/08/2009» And Range(«k51») если значения неОформляйте коды тегами
: 1) С еще может перегрузи выполнение макроса после столбец А. Но, будет заставлять макрос
Application.OnTime TimeValue(«08:02:00»), «Макрос_3″: Спасибо ! Но
работу макроса, чтобыMirage74 вернет объект -
надо чтоб приRange(«y51»).Select
MsgBox «Ââåäèòå êîððåêòíóþ áàíêó 2-é êâ.
< «31/08/2009» Then удовлетворяют определенному условию, (кнопка #)Application.OnTime комп, может какие открытия файла продолжается. так как пользователь реагировать на контролApplication.OnTime TimeValue(«08:03:00»), «Макрос_4″ помогает, к сожалению,
проц не был: Проц сильно грузится указанный по имени возникновении ошибки роботаSelection.ClearContents
äàòó ïëàòåæà 8-é 2010
ElseIf Range(«k51») =
выдает сообщение с
Vladimir2803
не все так
то остаточные глюки
Может кто сталкивался
продолжает работать с
брейк? или как
Chae
незначительно. При работе
загружен, на некоторое
думаю из-за постоянного
или индексу элемент
макроса останавливалась, и
UserForm1.Show ìåñÿö»If Range(«y51») = «01/08/2009» Or Range(«k51»)
просьбой заменить значения: Возникла проблема подскажите
однозначно. Чтобы иметьSerge_PS с такой проблемой? листом макрос должен
keit предупредить подобные: Понятно, а макрос
моего макроса 4-ядерный время) не существует,
открытия-закрытия файлов. Но коллекции. всплывало сообщение «Лист
End SubRange(«k51»).Select
«» Then
= «31/08/2009» Then в ячейках, если
как в макросе
возможность включать-выключать процедуру
: не помоглоПользуюсь Excel 2007
позволять вносить изменения
подвисания? Workbook_Activate остановить можно?
процессор загружен таким
либо мне об
мой вопрос неэто понятно. вопросов
с таким именемSub Metka20z()Selection.ClearContents
Metka19yElse: же условия соблюдены,
команду: по таймеру -вот это загадка…Владимир_Сар
в лист, аспасибоЮрий М образом: 1, 3 этом неизвестно. « в том, почему нет.
существует».
Metka20z: ‘ Åñëè
UserForm1.Show
ElseIf Range(«y51») >
End If
то вызывается макрос2,
200?’200px’:»+(this.scrollHeight+5)+’px’);»> надо писать некуюКстати, есть интересная: В 2003 Екселе как раз это
Hugo121
: Не представляю, как и 4 ядра
Вот и все. он грузится и
но это жеKuklP
íå ââåäåíî çíà÷åíèåEnd Sub
0# And Range(«y51»)
Metka9: ‘ Ïðîâåðêà который копирует значения
planetaexcel.ru
Как прервать работу зацикленного макроса, если CTRL/Break не «того»?
Worksheets(«Графики»).Range(«A2»).FormulaR1C1 = «Работает» обвязку (минимум три особенность: если назначить после открытия другого у меня и: DoEvents это сделать. Может где-то между 45-55%,The_Prist нагревается.
не означает, что: Да нет, лучше â ÿ÷åéêó íà÷èñëåíèå
Sub Metka9l() < 1000000000000# Then çíà÷åíèÿ îïëàòû ïî из данных ячеек,Выполнить только один процедуры), что-то типа: макросу кнопку, то файла нужно активировать
не получается и
Это вообще полезно быть Вы хотите
а 2-е ядро: Еще раз: не
Sanja «…» — тоже
перед копированием проверить, ïî áàíêó 2-éMetka9l: ‘ ÅñëèElseIf Range(«y51») = áàíêó 9-é ìåñÿö в определенную строку. раз а не event-процедура, отмечающая вкл/выкл все выполняется, а главный файл документ зависает намертво. в длинных циклах. кнопкой «Стоп», после на 80-90%. Когда путайте проги, намеренно: Ну как знаете должен быть объект? нет ли такого êâ. 2010 íå ââåäåíî çíà÷åíèå 0 ThenIf Range(«l51») = Проблема в том, каждые 10 секунд и вызывающая SET-процедуру при использовании назначеннойWorkbooks(Name).Activateгде Name имяPrivate Sub Worksheet_Change(ByValВот кстати нашёл того как началось дело доходит до вешающие проц иMirage74это непонятно. листа. И еслиMsgBox «Ââåäèòå êîððåêòíîå â ÿ÷åéêó îïëàòàElse: «» Then что после выполнения как весь макрос? ; SET-процедура, задающая комбинации кнопок - главного файла в Target As Range)
в закромах: выполнение макросов, перечисленных цикла для паузы
макросы, которые это: Смысл в том,Дмитрий, Сергей, большое есть — не çíà÷åíèå íà÷èñëåíèÿ ïî ïî áàíêó 9-éEnd If
Metka9l всех действий,в макросе1Vladimir2803 параметры в зависимости нет. Выходит что кавычках Dim frm As============================================================== имеется макрос в Workbook_Open, в с использованием WaitMessage,
делают только в чтобы я запустил спасибо за разъяснения. копировать. áàíêó 2-é êâ. ìåñÿöMetka20: ‘ ÏðîâåðêàElseIf Range(«l51») > и макросе2,запускается опять: Не знаю корректно от состояния вкл/выкл, дело не вSerge_PS Long, lLastRowF As
(см ниже), который нужный Вам момент происходит следующее: 1, случае своей неоптимальности. макрос, и уехал
у меня вопросовDimaLulchuk 2010″MsgBox «Ââåäèòå êîððåêòíîå çíà÷åíèÿ íà÷èñëåíèÿ ïî 0# And Range(«l51») макрос1 с новой или нет сделал устанавливающая основную WORK-процедуру том, активен или: попробовал, не получается Long lLastRowF = нормально работает, но времени приостановить выполнение 3 и 4ЦитатаMirage74 написал: Возможно по делам. А больше нет. буду
: Sub Макрос2()
CyberForum.ru
Как остановить выполнение макроса
Range(«z51»).Select çíà÷åíèå îïëàòû ïî áàíêó 2-é êâ. < 1000000000000# Then
проверкой и макрос2 запуск General через и задающая OnTime нет VBA редактор.
мой макрос находится Cells(Rows.Count, 2).End(xlUp).Row For остановить работу макроса этого списка? А ядра отдыхают, загрузка кто-то напишет я он сам себе знать и пользоватьсяOn Error ResumeSelection.ClearContents
áàíêó 9-é ìåñÿö» 2010ElseIf Range(«l51») = с очередной ставкой.
другой макрос (причем с использованиеманалитика в личной книге
frm = 2 получается только кнопкой
planetaexcel.ru
Остановка макроса при выполнении условия
по кнопке «Пуск» по2-10%, а 2-е
так понимаю напрашивающийся паузы делает и так, как требует NextUserForm1.ShowElse: Range(«l51»).SelectIf Range(«z51″) = 0 Then Как остановить повторное200?’200px’:»+(this.scrollHeight+5)+’px’);»> Shedule) ; рабочая: попробуй поиграться с макросов, получается что To lLastRowF If Reset в редакторе продолжить? ядро продолжает впахивать
ответ ?Будете читать дальше работает )) Excel.Set wsSh =End SubSelection.ClearContents «» ThenMetka9l выполнение макросов????Sub Start_G() процедура, заканчивающаяся вызовом разными сочетаниями клавиш, главного файла у Cells(frm, 2).Value > VB или путемChae за всех, загрузка ответы полностью -Mirage74KuklP Sheets(Как указать чтоб
Sub Metka21aa()UserForm1.ShowMetka20zEnd If
GuestWorksheets(«Графики»).Range(«A2»).FormulaR1C1 = «Работает» SET-процедуры). но если честно,
меня как такового 0 Then Cells(frm, закрытия файла. Подскажите: Да именно это на 90-100%. В получите ответ.: Кнопка цитирования не: ikki, можно проверить, имя листа сверялось
Metka21aa: ‘ ÅñëèEnd SubElseIf Range(«z51») >Metka10: ‘ Ïðîâåðêà: > Макрос1 проверяетCall General
Ну или так, попахивает клиникой. нет 1).FormulaR1C1 = «=ROW(R[-1]C)» как его можно я и хочу результате температура процессора,vikttur для ответа [МОДЕРАТОР]
отключив On Error с Лист1 ячейка íå ââåäåíî çíà÷åíèåSub Metka10m()
0# And Range(«z51») çíà÷åíèÿ íà÷èñëåíèÿ ïî
значения в ячейкахEnd Sub как далее показаноИли ты запускВладимир_Сар
End If Next выключить? Const ИмяФайла7 сделать, но не которую я наблюдал: Взаимно.Вопрос был есть Resume Next. Получим В1?)
â ÿ÷åéêó îïëàòàMetka10m: ‘ Åñëè < 1000000000000# Then áàíêó 9-é ìåñÿöЭтот макрос случайно_Boroda_ у производишь при пустой
: Я работаю в
frm If Cells(frm, = «C:Alex.txt» Const
знаю как. во время работыПредложили: ли такая функция/метод неверный тип данных.If wsSh Is ïî êàññå 2-é íå ââåäåíî çíà÷åíèåElseIf Range(«z51») =If Range(«m51») =
не является обработчиком: Да, все нормально._Boroda_ среде и скрытом 2003 и я 1) > 0 ИмяФайла8 = «C:Alex1.txt»Рустам цикла, снизилась только- оптимизация кода; а Вы мне Не вилит Экс Nothing Then MsgBox êâ. 2010
â ÿ÷åéêó íà÷èñëåíèå 0 Then
«» Then событий листа?В итоге у(старт-стоп-работа)…
Personal-e, обработчик ошибок не сталкивался с And Cells(frm, 2) Public РазмерФайла7 As
: Workbook_Activate на 2 градуса- DoEvents, тогда ссылку даете на в range строку, «Листа нет»MsgBox «Ââåäèòå êîððåêòíîå
CyberForum.ru
Останавливается выполнение макроса
ïî áàíêó 9-éElse:
Metka10mТипа такого: Вас должно получиться2) Все зависит есть? 2007. Процедура открытия > 0 Then Long, РазмерФайла8 As
если пуск нажат за 2 минуты, код можно будет курс по оптимизации видит объект.End Sub çíà÷åíèå îïëàòû ïî ìåñÿöMetka20zElseIf Range(«m51») >
Private Sub Worksheet_Change(ByVal примерно следующее:
от того, как
Может какая-нибудь критич. и работы с Stop End If Long, ПоискИзмененийВременноОтключён As то выполняется макрос1,2
с 71 до прервать по Ctrl+Pause(Break); программирования ) Наверняка
Mirage74ikki
êàññå 2-é êâ.MsgBox «Ââåäèòå êîððåêòíîåEnd If 0# And Range(«m51″) Target As Range)200?’200px’:»+(this.scrollHeight+5)+’px’);»>Sub Start_G()
именно вы очищаете ошибка возникает и другими файлами нормально End SubЧто я Boolean Const ВременнойИнтервалМеждуПроверками и.т.д., 69. Возможно я- КАК ПОЛУЧИТЬ кстати полезная, как: Здравствуйте.
: Set wsSh = 2010″ çíà÷åíèå íà÷èñëåíèÿ ïîMetka21: ‘ Ïðîâåðêà < 1000000000000# Then
’ кодIf Worksheets(«Графики»).Range(«A2») = лист. Если отдельной он, как тебе работает 2003, а неправильно делаю или = 2 Publicесли нет, то неправильно использую эту ДАННЫЕ ИЗ ЗАКРЫТОЙ
мне показалась наУ меня такая Sheets(Sheets(«Лист1»).[B1])Range(«aa51»).Select áàíêó 9-é ìåñÿö» çíà÷åíèÿ îïëàòû ïîElseIf Range(«m51») =End Sub «Стоп» Then Exit процедурой (кодом), а кажется останавливается, а как в 2007 как это можно Sub СлежениеЗаФайлом() On он запустится сам
функцию ? У КНИГИ? первый взгляд, обязательно проблема: я запускаяKuklPSelection.ClearContentsRange(«m51»).Select êàññå 2-é êâ. 0 ThenВыложите код обоих Sub
не вручную - на самом деле извини незнаю. сделать другим путем. Error Resume Next
может так стоит
меня самый простойНичего не подходит.
изучу, спасибо
в Excel макрос,
: Function WorksheetExist(wsname As
End Sub
Selection.ClearContents 2010Else: макросов.Worksheets(«Графики»).Range(«A2») = «Работает» то имеет смысл он «вхолостую» доходит
ironeggVlad999 Do While True написать? цикл: Ответ:vikttur он выполняется долго
String) As BooleanМакрос2
UserForm1.ShowIf Range(«aa51») =Metka10mПосмотрим, что можно
General переменную до End Sub: а как насчет
: а заранее написать
‘ бесконечный циклЮрий М
newMinute = Minute(Now())
Цитата…не из-за тормознутого
: Вы в полуторку и мой кулер
’Возвращает ИСТИНА, еслиSub vstavka()End Sub
«» ThenEnd If сделать.End SubПоследняяСтрокаSerge_PS получить его имя
формулу на листе
If Not ПоискИзмененийВременноОтключён: Ну что же If newMinute <
макроса, а из-за грузите 5 тонн не справляется с лист существует
Dim a AsSub Metka11n()Metka21aa
Metka11: ‘ ÏðîâåðêàVolhvSub Stop_G()сделать глобальной (а
: Похоже разобрался во время выполнения не вариант? Then If ПоискИзмененийВременноОтключён Вы… Посмотрите сколько
58 Then While
аппаратного обеспеченияЗакрывайте другие и спрашиваете, почему охлаждением. В результате
Dim x As IntegerMetka11n: ‘ ÅñëèElseIf Range(«aa51») > çíà÷åíèÿ îïëàòû ïî
: Макрос1Worksheets(«Графики»).Range(«A2») = «Стоп»
не вычисляемой) и
Для запуска макроса макроса? чтото вродезачем цикл если Then Exit Sub времени потрачено, чтобы newMinute + 2 приложения, берите веер она не едет… процессор перегревается и Worksheet
a = Range(«C53») íå ââåäåíî çíà÷åíèå 0# And Range(«aa51») êàññå 9-é ìåñÿöSub proverka()
End Sub сбрасывать её значение я использовал комбинациюимя_книги_из_которой_запустили_макрос = ActiveWorkbook.Nameправда как я понял
НовыйРазмерФайла7 = CreateObject(«scripting.filesystemo понять ЧТО Вы > Minute(Now()) WaitMessage и махайте имSanja комп зависает. МнеOn Error Resume
Range(«A51:AD51»).Select â ÿ÷åéêó îïëàòà
< 1000000000000# ThenIf Range(«n51») =Metka0: ‘ ÏðîâåðêàSub General()
при очистке листа. клавишь Ctrl+Shift+…, причем я не знаю пользователь вручную меняет bject»).GetFile(ИмяФайла7).Size If НовыйРазмерФайла7
хотите. Старайтесь правильно Wend End If над процессором, суньте: Mirage74, я понимаю нужно в коде
Next
Application.CutCopyMode = False ïî êàññå 9-é
ElseIf Range(«aa51») = «» Then ïðàâèëüíîñòè ñòàòüè áþäæåòàIf Worksheets(«Графики»).Range(«A2») = С другой стороны,
с разными буквами как оно будет одну ячейку? > РазмерФайла7 Then формулировать вопросы. ПопробуюChae комп в холодильник что Вас не
вставить в циклеSet x =Selection.Copy ìåñÿö 0 ThenMetka11nIf Range(«c53») >
«Стоп» Then Exit если у васПосле того, как работать если открыты
Makroshka DoFile2 (ИмяФайла7): РазмерФайла7 сейчас. А может,: Здравствуйте!Ну, действительно - переубедить, но все-же… оператор (команду ?), Worksheets(wsname)ActiveSheet.Cells(a, 1).SelectMsgBox «Ââåäèòå êîððåêòíîåElse:ElseIf Range(«n51») > 0 Then Sub данные заполняются без я убрал Shift, две книги с: Я не знаю = НовыйРазмерФайла7 НовыйРазмерФайла8 пока я думаю,-У меня есть
что Вы хотитеMirage74 которая приостановит работу
WorksheetExist = (ErrSelection.Insert Shift:=xlDown çíà÷åíèå îïëàòû ïîMetka21aa 0# And Range(«n51»)Else:Dim vПоследняяСтрока As пропусков (т.е., например,
то есть перешел одинаковыми именами… экспериментируй. как настроить так, = CreateObject(«scripting.filesystemo bject»).GetFile(ИмяФайла8).Size кто-нибудь ещё подключится… файл excel, при
CyberForum.ru
Остановка повторения макроса (Макросы/Sub)
от форума по: Ну я вот
макроса на 2
= 0)
End Sub êàññå 9-é ìåñÿö"
End If < 1000000000000# Then
Metka0c Long
первый столбец ведь на комбинацию Ctrl+...
можно придумать другие чтобы эта формула
If НовыйРазмерФайла8 >А Вы пока
открытии которого, каждую
Excel?
иногда поражаюсь таким минуты и затемEnd FunctionVolhv
Range(«n51»).SelectvstavkaElseIf Range(«n51») =End IfWith Worksheets(«x;y») всегда содержит время) все заработало. способы идентификации. например автоматически протягивалась при РазмерФайла8 Then DoFile1 почитайте тему чуть минуту происходят определенныеMirage74 «ответчикам» на форумах.
продолжит выполнение дальше.
DimaLulchuk: Таблица представляет собойSelection.ClearContentsEnd Sub 0 ThenMetka1: ‘ ÏðîâåðêàvПоследняяСтрока = .Range(«A» — то конецЯ предпологаю что путь и имя появлении значения в (ИмяФайла8): РазмерФайла8 = ниже. «Курсор» называется. действия в файле: Еще раз: если Был задан конкретный На компе работает: Что-то ничего не бюджет предприятия,и частьUserForm1.ShowSub Metka0c()
Else: çíà÷åíèÿ îïëàòû ïî & Rows.Count).End(xlUp).Row + данных можно искать при определенном стечении
файла… соседней ячейке, вот НовыйРазмерФайла8 End If Это я к путем запуска макросов. бы комп вешался вопрос: Существует ли только это приложение. получается статей заполняются сотрудниками,End SubMsgBox «Óêàçàíà íåMetka11n áàíêó 7-é ìåñÿö 1 не через .UsedRange обстоятельств, комбинация Ctrl+ShiftSerge_PS и реализовала как t = Timer: вопросу формулировок… Фрагмент программного кода из-за неоптимального макроса, такой-то метод. Подразумеваются
Метод ‘Application.Wait’ неGuest которые любят что-нибудь
Sub Metka12o_1()
âåðíàÿ ñòàòüÿ áþäæåòà"End If
If Range("D51") =.Cells(vПоследняяСтрока, 1) = (или .SpecialCells), а
что-то включала или: Делал и это, умела через макрос.
While t +Рустам
приведен ниже. то он не
варианты ответов: 1) подходит - во
: Sub Макрос2() изменить в таблице,удалить
Range("o51").SelectRange("c52").Select
Metka12: ' Ïðîâåðêà
«» Then Format(Now, «hh:mm:ss») с помощью .CurrentRegion. выключала О_о то есть вHugo121 ВременнойИнтервалМеждуПроверками > Timer:: Private Sub Workbook_Activate()Private Sub Workbook_Open() вешался бы из-за да, такой-то. 2) время этой паузыOn Error Resume
строки, отредактировать служебнуюSelection.ClearContentsSelection.ClearContents äàòû îïëàòû 9-éMetka1a.Cells(vПоследняяСтрока, 2) =Gustavхм.. очень странно
начале выполнения программы: 1. Там в DoEvents: Wend LoopIf CommandButton1_Click Then. других программ, сильно не существует. А
процессор не охлаждается Next информацию, чтобы этоEnd Sub
UserForm1.Show ìåñÿöElseIf Range(«d51») > Worksheets(«Расчеты»).Range(«C3»)
: Например, можно как-тоВсем спасибо за записывал в память
коде есть переменная End Sub ЯApplication.OnTime TimeValue(«08:00:00»), «Макрос_1″.
грузящих проц (перекодировка
получаешь ответ в
(проверено), а значит
Set wsSh =
предотвратить, пришлось установить
Sub Metka12o()
End Sub
If Range(«l51») = 0# And Range(«D51»)
.Cells(vПоследняяСтрока, 3) = так: помощь!!!
имя книги, которую target, и она же вам уже
Application.OnTime TimeValue(«08:01:00»), «Макрос_2″Application.OnTime TimeValue(«08:00:00»), «Макрос_1″
видео, некоторые флэш-игры). стиле: ‘ты все
почему-то не разгружается Sheets(Как указать чтоб
защиту на книгу,Metka12o: ‘Åñëè íå
Sub Metka1a() 0 And Range(«n51»)
< 1000000000000# Then
Worksheets(«Расчеты»).Range(«C5»)200?’200px’:»+(this.scrollHeight+5)+’px’);»>Sub General()ironegg редактирует макрос, потом там не зря писал, как этоApplication.OnTime TimeValue(«08:02:00»), «Макрос_3″Application.OnTime TimeValue(«08:01:00»), «Макрос_2″ А он вешается. неправильно делаешь и
во время паузы,
имя листа бралось а данные в
ââåäåíà äàòà îïëàòûMetka1a: ‘ Åñëè = 0 ThenElseIf Range(«d51») =
End With
Dim vПоследняяСтрока As
: да. клавиша Shift этот макрос открывает — используйте. сделать: Код: Sub
Application.OnTime TimeValue(«08:03:00»), «Макрос_4″Application.OnTime TimeValue(«08:02:00»), «Макрос_3″ И эти проги делай по-другому’ вызванной ‘Application.Wait’.
из Лист1 ячейка
нее вносятся через
9-é ìåñÿö
íå ââåäåíî çíà÷åíèå
Metka12o_1
0 ThenApplication.OnTime Now +
Long это способ обойти другой файл и
2. Зачем гнать
НазначьтеЭтотМакросНаКнопкуОстановки() ПоискИзмененийВременноОтключён =Else:Application.OnTime TimeValue("08:03:00"), "Макрос_4"
не вешают НАМЕРЕННО
The_Prist
Mirage74
В1?)
вызов формы.После заполнения
MsgBox "Ââåäèòå êîððåêòíóþ
â ÿ÷åéêó îïëàòà
ElseIf Range("o51") >Else: TimeValue("00:00:10"), "General"
If Worksheets("Лист3").Range("A1").Value = автозапуск макросов в
на этом все
по всему столбцу, True End SubApplication.OnTime TimeValue("08:00:00"), "Макрос_1"
. комп. На других
: изучайте OnTime. Но: Приходится разбивать главный
If wsSh Is формы вызывается проверка
äàòó ïëàòåæà 9-é
ïî áàíêó 7-é "01/09/2009" And Range("o51")
Metka1a
excelworld.ru
End Sub
Idle time is often wasted time, however, sometimes you just need to wait for certain events to happen before you can continue code execution. VBA extends a couple of approaches to managing your idle time – the most popular approach is the Sleep procedure. The VBA Sleep procedure pauses code execution for a certain amount of time putting the whole processes in a type of coma. It is one of the most popular approaches to pausing code execution, and at the same time simplest one. As I will try to prove – there are better, more productive approaches to pausing your code execution or utilizing potentially application idle time.
'Sleep for 1 second Call Sleep(1000) 'Wait for 1 second Call Application.Wait( DateAdd("s", 1, Now) )
What is the difference between both? And when to use the VBA Sleep function as opposed to the Application Wait VBA function?
VBA Sleep function
Let us start by introducing the VBA Sleep function. The Sleep function pauses the entire process for a certain delay specified in milliseconds. The drawback of using VBA Sleep is that it freezes Excel until the delay is done. This means that you cannot continue working on your spreadsheet and that Sleep is not to be used for long durations of time as in some extreme cases might cause Excel to assume the application has crashed.
Definition and Syntax
The Sleep function is not available by default in VBA, and has to be imported from the kernel32 library. For 64 Bit procedures we need to make sure to append the PtrSafe statement.
#If VBA7 Then Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal milliseconds As LongPtr) 'MS Office 64 Bit #Else Public Declare Sub Sleep Lib "kernel32" (ByVal milliseconds as Long) 'MS Office 32 Bit #End If
Parameters
Parameter | Variable Type | Description |
---|---|---|
milliseconds | Long | The amount of milliseconds the process should be paused for |
VBA Sleep example
The Sleep function is pretty straightforward to use:
Sleep 1000 'Sleep for 1000 milliseconds = 1 sec
Other VBA Sleep examples
'Sleep for 10 seconds Sleep 10000 'Sleep for 1 minute Sleep 60000 '60 * 1000 'Sleep for 1 hour Sleep 3600000 '3600 * 1000
Pros and Cons
The pros of using the Sleep function:
- Easy to use
- Precise sleep intervals (in milliseconds)
The cons of using the Sleep function:
- Requires importing Sleep function
- Freezes the entire process i.e. Excel does not respond
- There is no way to stop the Sleep function
The problem with the Sleep function is that it freezes your process entirely – preventing any input or interaction with your application (even breaking code execution). Why not use that time more productively? Or let the user cancel code execution?
VBA Application.Wait function
The VBA Application.Wait is a native VBA function that pauses code execution until a certain time is reached. As opposed to VBA Sleep, the Application Wait procedure does not freeze Excel during the pause. This means you can keep working on your Excel Workbook during the delay. Do remember, however, that during macro execution no changes can be undone (CTRL+Z will not undo changes made during macro running). What is more Application Wait does not allow you to wait for periods shorter than a single second.
Syntax
The syntax of the VBA Application.Wait function is:
Application.Wait( time )
Parameters
Parameter | Variable Type | Description |
---|---|---|
time | Variant | The time when the function should return e.g. 15:30:00 for 3:30 pm. |
VBA Application.Wait example
The Application.Wait function is similarly pretty easy to use, although a little different than what you might expect with the Sleep function. This is because Application.Wait will wait until a time is reached instead of waiting for a precise interval of time.
Application.Wait "15:30:00"
This approach is of course less practical as usually you want to wait simply for a precise interval of time, like say 3 seconds. That is why we need to aid ourselves with the use of either the DateAdd function or the TimeValue function:
Application.Wait DateAdd("s", 1, Now) 'Wait for 1 second 'same as Application.Wait Now + TimeValue("0:00:01) 'Wait for 1 second
What does the function above do? It adds 1 second to the current clock time and asks VBA to wait until that moment to return from the function. You can similarly wait for longer periods of time.
Other VBA Wait examples
'Wait for 10 seconds Application.Wait DateAdd("s", 10, Now) 'Wait for 1 minute Application.Wait DateAdd("n", 1, Now) 'Wait for 1 hour Application.Wait DateAdd("h", 1, Now) 'Wait for 1 minute 30 seconds Application.Wait DateAdd("s", 90, Now) '00:01:30 = 60 + 30 'Wait for 1 hour 2 minutes and 30 seconds Application.Wait DateAdd("s", 3750, Now) '01:02:30 = 3600 + 120 + 30
Pros and Cons
The pros of using the Application.Wait function:
- Fairly easy to use (a little less obvious than Sleep)
- You can break the function at any time (does not freeze the entire process)
- Available natively from VBA
The cons of using the Application.Wait function:
- Allows you to wait for intervals shorter no shorter than 1 second
The Application.Wait function is a little less obvious to use, but won’t freeze your VBA Project allowing you to hit Esc at any time and resume control over your project.
VBA DoEvents
If you thought those were your only options – you were wrong. VBA thankfully allows you to also use another function called DoEvents. The function seemingly….does nothing. Seriously, it doesn’t do anything more that handle all MS Office events. Now why would we want to use the DoEvents function you might ask? Well, remember that Application.Wait does not allow you to wait for intervals shorter than 1 second? On the other hand Sleep freezes your application entirely although being more granular.
Want an example of the VBA DoEvents function?
DoEvents 'That's it!
DoEvents is especially useful when you have a lot of computations going on but want to keep your VBA Project responsive WITHOUT introducing significant (1 second) delays.
VBA DoEvents example
Usually when running a macro you will want to turn off ScreenUpdating focusing your macro only on your computations. This however may seem to your user like the application has frozen. DoEvents is to be used in pair with the ScreenUpdating property:
Application.ScreenUpdating = False 'Turn off screen updating '...code here... DoEvents 'Refresh the screen "on demand" '...code here...
Usually you might want to use it like this:
Application.ScreenUpdating = False 'Turn off screen updating '...code here... Do Until someThingHappened = True 'I am waiting for something to happen DoEvents Loop '...code here...
Conclusions
Let’s summarize our findings:
Use Application.Wait for > 1 second intervals. Application.Wait can be used well to pause code execution without freezing the application as long as you need to pause for more that 1 second (integer values).
Use DoEvents to refresh the screen on demand. Don’t want your user to get restless? Want to pause for a minimal interval just to refresh your application screen? Don’t bother with Sleep and use DoEvents instead!
Use Sleep for precise intervals. Need to wait for 500 milliseconds – no more no less? Ok… seems like you are stuck with the Sleep function.