У меня есть код, в котором я копирую диапазон и вставляю значения. Это делается через промежуток времени после нажатия кнопки команды. Мне нужна помощь в том, как остановить или приостановить запуск этого макроса, нажав кнопку.Как остановить этот макрос нажатием командной кнопки?
Вот основной код:
Sub timestamp()
'
' timestamp Macro
'
N = WorksheetFunction.Count(Sheets("DNB").Columns(1))
dnbspread = Sheets("DNB").Range("G5:G30")
Sheets("DNB").Cells(N + 34, 1) = Date
Sheets("DNB").Cells(N + 34, 2) = Time
Sheets("DNB").Range("G5:G30").Copy
Sheets("DNB").Cells(N + 34, 3).PasteSpecial Transpose:=True, Paste:=xlPasteValues
Application.OnTime Now + TimeValue("00:00:05"), "timestamp"
End Sub
Я попробовал несколько вещей, чтобы остановить его.
- функцией BREAK
Sub PauseMacro()
Application.SendKeys "^{BREAK}"
End Sub
2.
Public StopMacro as Boolean
Sub SetStopMacro()
StopMacro = True
End Sub
и поместить его в коде, как это:
Sub timestamp()
'
' timestamp Macro
'
N = WorksheetFunction.Count(Sheets("DNB").Columns(1))
dnbspread = Sheets("DNB").Range("G5:G30")
Sheets("DNB").Cells(N + 34, 1) = Date
Sheets("DNB").Cells(N + 34, 2) = Time
Sheets("DNB").Range("G5:G30").Copy
Sheets("DNB").Cells(N + 34, 3).PasteSpecial Transpose:=True, Paste:=xlPasteValues
Application.OnTime Now + TimeValue("00:00:10"), "timestamp"
DoEvents
If StopMacro = True Then Exit Sub
End Sub
Если у кого-то есть ввод того, что я делаю неправильно, чтобы заставить его работать, пожалуйста, дайте мне знать. Кроме того, если у вас есть какие-либо идеи о том, как написать более гладко, что было бы оценено.
Thanx
Эйвинд
If Not StopMacro Then Application.OnTime Now + TimeValue ("00:00:15"), "timestamp" End If – dee
Спасибо за ввод. Не знаете, как включить и включить. Я получаю ошибку «Завершить, если без блока, если». –
Есть разница между паузой или остановкой? Какой вы хотите? –