最も簡単な方法は、End
ステートメントをイミディエイトウィンドウで実行することです。
しかし、これは格納されているすべての状態、つまりすべてのモジュールレベル変数、すべてのプロシージャ内のすべての静的変数などを破棄します。 Unload
とTerminate
イベント発生しません、等:
http://msdn.microsoft.com/en-us/library/gg251671.aspx
だけで状態の損失を引き起こすことが
を(私は...私はあなたの質問を再読み込みした後、以下のものを編集しました) 1つのルーチンでは、isSet
という宣言を手動でコメントアウトしてから復元することができます。 VBEの[ツール]メニューの[オプション]メニューの[一般]タブには、このような状態が発生したときに通知を受ける設定があります。 (End
の呼び出しについては警告しませんが、その場合は警告は必要ないはずだからです)。
あなたはこれを求めませんでしたが、あなたはこのような場しのぎ何かをする必要があります任意のコードを編集せずに1つの手順内の1つの静的変数、:私はあなたがすぐにからそれを呼び出すことができるようにPublic
あなたのルーチンしなければならなかった
お知らせリセットする場合は、パラメータをTrue
に設定してください。
それはあなたの手順の外部からアクセス可能であるあなたには、いくつかの状態が必要な場合なら、それを手動でリセットすることができるという目的のために、この場合には、あなたはモジュールレベル変数ではなくStatic
を検討するかもしれませんプロシージャレベルのもの。その後、あなたのルーチンはPrivate
のままでいます。リセットのためにインターフェイスの汚れはなく、手作業で必要なモジュールレベルの変数を混乱させることができます。
問題は、既にルーチンを1回実行したためです。それから、私は変更を加えてルーチンを再度実行したいと思っていましたが、0にしたいときはisSet = 1で止まっていました。つまり、スプレッドシートを起動するたびにisSetを0にし、一度だけしかし、スプレッドシートをテストしているので、isSetをリセットする方法が必要でした。それは理にかなっていますか? – kmccoy