У меня есть userform1, который вызывает другого userform2 для принятия некоторых данных.Как только я успешно выгрузил пользовательскую форму 2, элемент управления возвращается к пользовательской форме 1. Однако я замечаю синий курсор загрузки (вращающийся).В то время в пользовательской форме 1. ничего не работает, но это нормально, как только я щелкаю где-то на листе.
Кажется, это не большая проблема, так как мои формы все еще работают.Но меня беспокоит то, что я что-то делаю неправильно при закрытии, как любое свойство, которое нужно установить и т. Д.
Дополнительная информация: пользовательская форма 2 может быть доступна пользовательской форме 1 и 3. Сценарий, о котором я упоминалзагрузка курсора происходит, когда пользовательская форма 1 вызывает пользовательскую форму 2, и agentupdateflag будет иметь значение ЛОЖЬ в течение этого времени и значение true, когда экран вызывается пользовательской формой 3
Код, где пользовательская форма 2 называется
Private Sub agentname_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
agentupdateflag = False
On Error Resume Next
userform2.Show
End Sub
инициализация пользовательской формы 2код
Private Sub UserForm_Initialize()
agentstatus.AddItem ("Active")
agentstatus.AddItem ("Inactive")
If agentupdateflag = True Then
Userform2.Agentid.Caption = Userform3.agentlist.List(Updateval, 0)
Userform2.Agentname.value = Userform3.agentlist.List(Updateval, 1)
Userform2.agentaddr.value = Userform3.agentlist.List(Updateval, 2)
Userform2.agentcontact.value = Userform3.agentlist.List(Updateval, 3)
Userform2.agentstatus.value = Userform3.agentlist.List(Updateval, 5)
Userform2.agentidproof.value = Userform3.agentlist.List(Updateval, 6)
Userform2.Caption = "Update Agent Details"
addagent.Caption = "Update Agent"
agentstatus.Locked = False
Else
agentstatus.value = "Active"
agentstatus.Locked = True
End If
End Sub
код завершения пользовательской формы 2, где происходит некоторая обработка
Private Sub UserForm_Terminate()
If agentupdateflag = False Then
Application.EnableEvents = False
On Error GoTo err1
Userform1.agentname.Clear
j = 2
Set ShDest = ThisWorkbook.Worksheets("Agent_info_Temp")
Final_lastrow = ShDest.Cells(ShDest.Rows.Count, "B").End(xlUp).Row
Final_lastcol = ShDest.Cells(1, ShDest.Columns.Count).End(xlToLeft).Column
ShDest.Activate
With Userform1.agentname
Do While j <= Final_lastrow
If Trim(ShDest.Range("a" & j).value) <> "" Then
.AddItem (ShDest.Range("a" & j).value & " - " & ShDest.Range("B" & j).value)
End If
j = j + 1
Loop
End With
Userform1.agentname.ListIndex = Userform1.agentname.ListCount - 1
Application.EnableEvents = True
'Unload Me
Else
'Unload Me
Call Userform3.searchagent_Click
End If
'Unload Me
err1:
If Err.Number <> 0 Then
Msg = "Error # " & Str(Err.Number) & " was generated by " _
& Err.Source & vbNewLine & vbNewLine & Err.Description & vbNewLine & vbNewLine & "Contact System Admin."
MsgBox Msg, vbOKOnly + vbCritical, "Critical System Error Encountered !", Err.HelpFile, Err.HelpContext
End If
Exit Sub
End Sub