좋아, 사용자 폼을 숨기고 표시하는 데 질문이 있습니다.
This link 이미 저에게 답변 해주었습니다.
UserForm이 숨어서 여러 번 표시되는 이유는 무엇입니까?
문제가 발생했습니다.
Userform1
으로 돌아 가면 얼어 버리고 전혀 아무것도 할 수 없습니다.
왜? 코드에 뭔가를 추가해야합니까? Heres는
내가 사용되는 코드의 summay : 나는 그래서 여기에 목록 상자를 사용
을 :
이 코드는 사용자 이름과 암호를 입력하라는 메시지를 표시이 코드는 로그 아웃입니다
Option Explicit
Private Sub CBu_Login_Click()
Dim ws As Worksheet, rng As Range, lrow As Long, find_value As String
Dim cel As Range
Set ws = ThisWorkbook.Sheets("UserName")
lrow = ws.Range("A" & ws.Rows.Count).End(xlUp).Row
Set rng = ws.Range("A2:A" & lrow)
find_value = Me.TB_Username.Value
Set cel = rng.Find(What:=find_value, After:=ws.Range("A2"), LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
If Not cel Is Nothing Then
If Me.TB_Password.Value = cel.Offset(0, 1).Value Then
Me.Hide
UF_Encoding.L_User.Caption = "Welcome " & cel.Offset(0, 2).Value & "!" & " You are logged in."
UF_Encoding.TB_Operator.Text = cel.Offset(0, 2).Value
UF_Encoding.TB_ESN_IMEI.Value = ""
UF_Encoding.CB_PrimaryCode.Value = ""
UF_Encoding.CB_SecondaryCode.Value = ""
UF_Encoding.TB_Remarks.Value = ""
UF_Encoding.TB_ESN_IMEI.SetFocus
UF_Encoding.Show
Else
MsgBox "Invalid Username/Password"
End If
Else
MsgBox "Invalid Username/Password"
End If
End Sub
사용자는 취할 조치를 선택할 수 있습니다.
Private Sub LB_Options_AfterUpdate()
If Me.LB_Options.Value = "Log out" Then
Me.Hide
Me.LB_Options.Visible = False
UF_Login.TB_Username.Value = ""
UF_Login.TB_Password.Value = ""
UF_Login.Show
ElseIf Me.LB_Options.Value = "Change Password" Then
Me.Hide
Me.LB_Options.Visible = False
UF_Changepass.TB_User.Value = ""
UF_Changepass.TB_Newpass.Value = ""
UF_Changepass.TB_Oldpass.Value = ""
UF_Changepass.Show
ElseIf Me.LB_Options.Value = "Exit" Then
Me.Hide
wbDbase.Save
wbDbase.Close
wbEncoding.Save
wbEncoding.Close
Unload UF_Login
Unload UF_Changepass
Unload Me
End If
글쎄요. 로그인하고, 로그 아웃하고, 패스를 변경하고 종료하십시오.
그러나 제가 말했듯이, 1 차 실행 후 양식은 정지합니다.
예 :
1. 내가 UF_Login를 초기화 한 후 UF_Encoding가 나타납니다.
2. 모든 명령 단추 및 텍스트 상자가 작동합니다.
3. 그런 다음 목록 상자를 사용하여 로그 아웃합니다.
4. 다시 로그인 할 때 UF_Encoding이 표시되지만 명령과 버튼을 사용하려고하면 작동하지 않습니다.
5. 이상한 점은 로그 아웃, 패스 및 종료 변경 목록 상자가 작동한다는 것입니다.
정말 이유를 알아 내려고합니다.
도움을 주시면 감사하겠습니다.
문제의 일부는 양식 내에서 양식을 호출하는 것이므로 까다로워 질 수 있습니다. 종종 같은 양식의 여러 인스턴스로 연결됩니다. 일반적으로 예기치 않은 결과가 나타납니다. 일반 모듈의 매크로에서 양식을 호출하면보다 효과적으로 제어 할 수 있습니다. 일부 지침은 [This] (http://peltiertech.com/Excel/PropertyProcedures.html)를 참조하십시오. – DaveU
그래, 그게 내가 생각했던거야. 하지만 나는 그걸 돌볼 수있는 방법이 있기를 바라고 있습니다. 나는 내가 수행하려고하는 것은 워크 시트가 아닌 사용자에게만 폼을 보여주기 때문에 reg 모듈에서 매크로를 수행하는 것을 피합니다. – L42
그래도 정규 매크로에서 양식의 흐름을 제어하여이를 수행 할 수 있어야합니다. – DaveU