特定のモジュールから呼び出されたVBAでよりスマートで正確なユーザーフォームの初期化をデバッグする方法があるかどうかは疑問でした。VBAの呼び出されたUserformを正確にデバッグする2016
Userform_initialisatizeに誤ったコードを書き込むとエラーが表示されますが、発生する箇所は表示されません。強調表示されているコードは単にcall Userform_intitialize
です。どのコードを推測するかSub Userform_intitialize
にエラーが含まれています。
小さなコードを追加するたびにテストランでユーザーフォームを段階的に構築することで、安定したユーザーフォームの初期化コードを効率的に作成できます。私は最後の成功したランから何が変わったのかを知っているから、特に試行が長い時間を費やす場合に、エラーがどこで発生するのかをすぐに知るとかなりの時間を節約できます。
vba Excel 2016のSub Userform_intitialize
と呼ばれる部分で正確なエラーが発生した行を抽出する方法はありますか?
「Userform_intitialize」の先頭にブレークポイントを置き、「F8」でステップバイステップを実行できます。しかし、私はなぜあなたが明示的に 'Userform_intitialize'を呼び出すのか困惑しています。このコードは、ユーザーフォームが読み込まれたときに自動的に呼び出されます(フォームのコンストラクタや初期化子など)。それを明示的に(良い習慣の規則によって)呼び出すべきではありません。 –
うわー、ありがとう!私は最終的に抗力を見ることができるサイクリストのように感じる。直感的に隠れたコードを改善するのではなく、何が起きているのか分かります!そのような目が離せない:) まず、ユーザーフォームのシェイプ(たとえば、テキストボックスの数)をシート入力に基づいて計算する必要があります。そのため、動的なユーザーフォームです。私は動的な読み込みと初期化のすべてに困難を抱えていたので、私はこの構築に終わりました。しかし、私はポイントを理解する、私は正確な階層/ユーザーフォームの(の作成)の順序で練習する必要があります。 @ A.S.Hをお寄せいただきありがとうございます! –
私はあなたのポイントを見ます。その場合、フォームを動的に「再初期化/再計算する」という別のルーチンを作成します。このルーチンは、 'Userform_initialize'と同様に任意の場所から呼び出すことができます。後者は最初に最初の構築を行い、別のルーチンを呼び出す必要があります。このような責任の分離は非常に有益です。 –