私は、ユーザーフォーム上にcombobox1,2,3およびtextbox1を持っていたとしましょう。 After update
イベントがcombobox1に関連付けられていました。 Tabキーが押されたときafter update
イベントが発生しました(コンボボックス2とコンボボックス3を埋める)。このイベントのコードでは、exit subの直前にtextbox1.setfocus
があり、他のコボボックスをタブ順(コンボボックス1,2,3、textbox1)にスキップします。それはうまくいった。VBA Excel更新後のイベントの発生イベントの起動イベントの入力
私は現在combobox2である別のコンボボックスを追加すると、タブの順序が1,2,3,4に変更されました。 After update
はまだcombobox1に関連付けられており、textbox1.setfocusはexitサブの前の最後の行です。残念ながら、after update
のサブラインを終了すると、combobox3 enter event
が発生し、コンボボックス3にフォーカスが移動します。タブオーダーはコンボボックス1、2、3、4であるため、タブオーダーをスキップするので、理解しにくいです。
私はコードをデバッグしたとき、exitboxが実行されたときにコードラインがコンボボックス3のイベントに入力されると、textbox1にフォーカスが設定されました... ユーザーフォームのコードウィンドウの行為で
'Application.Enableevents = False' - 他のイベントが発生しないようにします。 'Exit Sub'または' End Sub'の前にイベントを再びオンにします。 – vacip
@vacipこれは助けになるかもしれませんが、それでもどうしてこのように振る舞い始めましたか? – kkris77
@vacipあなたの解決策をもう1つ質問します。enableイベントをfalseに設定する必要があります。 updateイベントの後に実行する必要がありますが、aupdateイベントの後に 'exit sub'が実行されたときだけイベントを開始し、 'exit sub'の直前でenableイベントを有効にするように提案しました。 – kkris77