사용자 폼에 텍스트 상자가 있습니다. 사용자가이 텍스트 상자에 아무 것도 입력하지 않으면 입력을 강제하기 위해 해당 텍스트 상자를 잡아야합니다. 이 작업을 충분히 쉽게 수행 할 수 있지만 항목을 작성해야하는 사용자에게 알린 후 포커스가 텍스트 상자로 돌아 가기를 원합니다. 지금 당장은 그렇게하지 않습니다.필요에 따라 텍스트 상자에 포커스를 두는 방법
Private Sub txtAnswer_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Select Case KeyCode
Case 13:
If Me.txtAnswer.Value = "" Then
temp = MsgBox("You need to enter an answer!", vbCritical + vbOKOnly, "No Answer Found!")
Me.txtAnswer.SetFocus
Else
recordAnswer
End If
End Select
End Sub
이 코드는 텍스트 상자가 비어있는 경우 메시지 박스가 팝업 점에서 잘 작동 : 여기 내 코드입니다. 메시지 상자를 지우고 Enter를 다시 누르면 즉시 메시지 상자가 나타나서 텍스트 상자에 포커스가 있음을 알립니다. 그러나 문자 (예 : 숫자 '1'과 같은)를 입력하려고하면 아무 것도 텍스트 상자에 표시되지 않습니다.
누구든지 데이터 입력을 허용하는 방식으로이 텍스트 상자에 다시 포커스를 가져올 수있는 방법을 제안 할 수 있습니까? 고맙습니다!
제게 잘 작동합니다 ...'recordAnswer'는 무엇을합니까? –
이상한. recordAnswer는 많은 자료를 처리하며 대부분 데이터를 워크 시트에 채 웁니다. 그 서브 루틴은 철저히 현장 테스트를 거쳐서 문제가 아닌 것으로 알고 있습니다. 나는 그대로 두는 것 같아. 사용자는 포커스를 다시 가져 오려면 텍스트 상자를 클릭하기 만하면됩니다. 감사! – Alex
컨텍스트에서이 게시물이 도움이 될 가능성이 있습니다. http://blog.contextures.com/archives/2012/05/08/add-new-combobox-items-in-excel-userform/. 그녀는 다소 비슷한 문제를 겪고 있었고 그 의견에서 해결되었습니다. –