2013-02-18 3 views
3

Я пытаюсь написать простой макрос, чтобы добавить 1 к текущему значению ячейки:Невозможно выполнить макрос в режиме прерывания

Sub add() 
    MsgBox Selection.Value 
    Selection.Value = Selection.Value + 1 
End Sub 

я получаю следующее сообщение об ошибке, когда я нажимаю (числовую) ячейку и попытаться запустите макрос:

Cannot Execute in Break Mode 

Что мне не хватает?

+1

'Selecdtion.Value + 1' - есть опечатка здесь, кстати –

+1

Вы должны всегда иметь Option Explicit в верхней части ваших модулей кода. Это сказало бы вам, что «Selecdtion.Value» недействительно. Как только вы это исправите, посмотрите, как вы идете. –

ответ

10

Вы уже выполняется макрос и как-то остановил его выполнение (например из-за необработанного ошибки или потому, что вы нажали Ctrl - Перерыв во время исполнения). В этом состоянии вы не можете выполнить другой макрос.

В редакторе Visual Basic, необходимо нажать на кнопку Stop: enter image description here

Затем вы можете запустить макрос.

Если вы хотите понять, где остановлено текущее исполнение, щелкните его правой кнопкой мыши и выберите . Следующее объявление. Если вы затем нажмете F8, вы можете перейти через код. F5 продолжает выполнение.

+0

+ 1 красиво объясняется как обычно :) –

+0

Большое спасибо, новый для отладки в VBA, был очень смущен – mike

2

И вы должны проверить, является ли значение в ячейке числовым. Пример

Sub add() 
    If IsNumeric(Selection.Value) Then 
     Selection.Value = Selection.Value + 1 
    Else 
     MsgBox ("Not a value selected") 
    End If 
End Sub 
-2
Sub Lower() 
    Range ("e3"), Value = Range("e3"), Value - 1 
End Sub 

Sub Higher() 
    Range ("e3"), Value = Range("e3"), Value + 1 
End Sub 
Смежные вопросы