निम्नलिखित वीबीए कोड Me.Show
पर बंद हो जाता है। मेरे परीक्षणों से, ऐसा लगता है कि Me.Show
कोड कोड निष्पादन को रोकता है, भले ही कोड उपयोगकर्ताफॉर्म के अंदर है।मॉड्यूल स्टॉप कोड निष्पादन के रूप में उपयोगकर्ताफॉर्म क्यों दिखा रहा है?
इस भाग UserForm बाहर है:
Public Sub TestProgress()
Dim objProgress As New UserForm1
objProgress.ShowProgress
Unload objProgress
End Sub
इस भाग UserForm अंदर है:
Private Sub ShowProgress()
Me.Show vbModal
Dim intSecond As Integer
For intSecond = 1 To 5
Application.Wait Now + TimeValue("0:00:01")
Me.ProgressBar1.Value = intSecond/5 * 100
Next intSecond
Me.Hide
End Sub
कोड Me.Show
पर रुक जाता है, के बाद UserForm प्रदर्शित होता है। कोई त्रुटि नहीं है, यह सिर्फ कोड निष्पादित करना बंद कर देता है। ऐसा लगता है VBA में एक मॉडल UserForm अंदर कोड को निष्पादित करने के लिए एक ही रास्ता इस तरह UserForm_Activate प्रक्रिया में शामिल करने के लिए है कि:
इस भाग UserForm बाहर है:
Public Sub TestProgress()
Dim objProgress As New UserForm1
Load objProgress
Unload objProgress
End Sub
यह हिस्सा है UserForm अंदर:
Private Sub UserForm_Initialize()
Me.Show vbModal
End Sub
Private Sub UserForm_Activate()
Dim intSecond As Integer
For intSecond = 1 To 5
Application.Wait Now + TimeValue("0:00:01")
Me.ProgressBar1.Value = intSecond/5 * 100
Next intSecond
Me.Hide
End Sub
बेशक
, मैं नहीं Me.Show
UserForm_Activate अंदर रख सकते हैं क्योंकि यह प्रक्रिया केवल UserFo के बाद आग आरएम शो घटना।
UserForm.ShowModal
के लिए दस्तावेज़ कहते हैं, "जब एक UserForm मोडल है, उपयोगकर्ता जानकारी की आपूर्ति या आवेदन के किसी अन्य भाग उपयोग करने से पहले UserForm बंद करना होगा। जब तक UserForm छिपा या उतार दिया है नहीं बाद में कोड निष्पादित।"
मैं प्रक्रिया के दौरान उपयोगकर्ता के साथ बातचीत करने से रोकने के लिए एक प्रगति पट्टी के रूप में एक मोडल UseForm का उपयोग करने की कोशिश कर रहा हूं। लेकिन यह पूरा करना मुश्किल होगा यदि मेरा सभी कोड UserForm_Activate प्रक्रिया में होना चाहिए।
क्या मुझे यहां कुछ याद आ रही है? सभी कोड निष्पादन Me.Show
पर क्यों रोकता है?
सभी कि तुम सच में अगर आप अभी भी चादर के साथ बातचीत करते हुए फार्म को है सक्षम होना चाहते हैं क्या करने की जरूरत के लिए इस कोड जब userform बुला उपयोग करते हैं: 'userform.show vbModeless'। – Casey