メッセージボックスの答えが返された後、ユーザーはComboBoxの 'aceCount'に戻るようにします。しかし、それはその行全体を飛び越えているようです。以下のコードでは、「コード作業」と「フォーカス後」という2つのメッセージボックスがあります。私はそれがその領域のコードを読んでいることを知っているので、それは文字通りsetfocus部分を無視しています。私はできるすべての記事を読んで、他の質問のために複数のソリューションを試してみました。無駄です。また、メッセージボックスの後のフォームのANYTHINGにもフォーカスしません。私はテキストボックスとコンボボックスで試しました。MsgBoxの後、VBAはsetfocusをComboBoxに無視します
編集:必要なコンボボックスにsetfocusされているようですが、下に太字で表示され、コードを実行します。ユーザーに再送信の機会を与えるものではありません。
Private Sub SubmitButton_Click()
'Calls all necessary subs to perform required actions. If you add a sub, you will have to call it here if you want it to perform when you submit the form.
'If you have requested any number of HA Oracle servers, checks also if ACE and F5 are empty:
If Me.oracleCount.ListIndex > 0 Then
'If Ace and F5 are empty, MessageBox requesting review.
If aceCount.Value = 0 And F5Count.Value = 0 Then
If MsgBox("You have requested a HA Oracle server, but no Ace or F5. Do you need ACE or F5?", vbYesNo + vbQuestion, "ACE or F5?") = vbYes Then
'If chooses yes, goes back to form to allow user to input data
Cancel = True
MsgBox "code working"
UserForm1.aceCount.SelStart = 0
MsgBox "after focus"
'If chooses no, submits code as normal
Else
Call EnterData
Call HideSheets
Unload Me
**End If**
'If value in either Ace or F5, submits code as normal
ElseIf (Me.aceCount.Value <> 0 Or Me.F5Count.Value <> 0) Then
Call EnterData
Call HideSheets
Unload Me
End If
Else
End If
Call EnterData
Call HideSheets
Unload Me
End Subの
を使用することができます... –
うん、あなたは正しいです。たくさんのことをしようとすると、間違って行が削除されてしまったと思います。ただし、コードが以下の場合でも、まだフォーカスはありません。 「はい選択した場合、入力されたデータにユーザーが 『フォーカスの後に』 = 0 MsgBoxに UserForm1.aceCount.SetFocus UserForm1.aceCount.SelStart 『ワーキングコード』 =真 のMsgBoxをキャンセル できるように形成するために戻っ」の場合は、選択したノー、正常にコードを提出する – aoman49