2017-09-27 16 views
-1

最後にいくつかのデフォルトを変更する必要がありますが、マクロを中断する必要がある場合、設定はリセットされません。 コードがVBA - マクロが中断したときにコードを実行する

Application.Calculation = xlCalculationManual 

が含まれているのであれば、私は

Private Sub IfInterrupted() 
    Application.Calculation = xlCalculationAutomatic 
End Sub 

を持つことになり、これを行う方法はありますか?

+1

マクロはどのように中断されていますか? – Bathsheba

+1

中断の原因がある場合は、手動で元に戻す必要があります。コードを挿入するための「割り込み」イベントはありません。 – braX

+0

また、*なぜ*あなたのコードを中断していますか?おそらく、あなたはそれを複数の部分に分解して、コード内にその理由を処理する方法を追加する必要はありませんか?これは[XY問題](https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)です。 – BruceWayne

答えて

0

あなたは本当には本当に、これはどのようにされ、これを実行する必要がある場合:

Sub YourSub() 
    On Error GoTo ErrHandler: 
    Application.EnableCancelKey = xlErrorHandler 

    ' You code goes here 

ErrHandler: 
    With Err 
    If .Number <> 18 Then 
     .Raise .Number, .Source, .Description, .HelpFile, .HelpContext 
    End If 
    End With 
    Application.Calculation = xlCalculationAutomatic 
End Sub 

しかし、それはあなたが達成しようとしているであるものは何でも達成するためのより良い方法があります。たとえば、ユーザー入力用のポーリングです。

関連する問題