एक्सेल VBA: जब कोई उपयोगकर्ता जानकारी में कोई चेक बॉक्स मान बदलता है तो मैं कोड कैसे चला सकता हूं?


0

जब कोई उपयोगकर्ता जांच में कोई चेक बॉक्स मान बदलता है तो मैं कोड कैसे चला सकता हूं

मैं एक क्लास मॉड्यूल का उपयोग करने का प्रयास कर रहा हूं लेकिन कोड एक अजीब तरीके से काम कर रहा है जो मुझे समझ में नहीं आता है

कोड केवल यह पहचानेगा कि एक चेकबॉक्स का मूल्य पहली बार ऐसा होने पर बदल गया है, और केवल तभी, कोड में _Change () घटना के लिए एक ब्रेकप्वाइंट सेट है। अन्य सभी उदाहरण यह किसी भी अधिक परिवर्तन को नहीं पहचानते हैं।

यहाँ मेरा कोड Userform_Initalize () में है

Private Sub UserForm_Initialize()

Dim ckCollection As New Collection
Dim ctrl As MSForms.Control
Dim obj As clsCheckBoxes

For Each ctrl In Me.Controls

            If TypeOf ctrl Is MSForms.CheckBox _
       And Not TypeOf ctrl Is MSForms.OptionButton _
       And Not TypeOf ctrl Is MSForms.ToggleButton _       
       And Not ctrl.Name = "ckEditFileDescription" Then    'do not need this particular checkbox in this class module

                    Set obj = New clsCheckBoxes
                    Set obj.Control = ctrl
                    ckCollection.Add obj

             End If
 Next ctrl
 Set obj = Nothing

और यहाँ मेरा कोड मेरे क्लास मॉड्यूल clsCheckBoxes में है

Private WithEvents xlCheckBoxes As MSForms.CheckBox

Public Property Set Control(cK As MSForms.CheckBox)
    Set xlCheckBoxes = cK
End Property

Private Sub xlCheckBoxes_Change()

    Call CheckVisibility
    'This is the code I want to run when any of the checkboxes change
    'but it seems to only recognize the event if the "Call CheckVisibility" is a 
    'breakpoint, and even then, it will only recognize the first time a checkbox value 
    'is changed

End Sub

एक तरफ ध्यान दें, "अगर टाइपऑफ सीटीटी इज़ MSForms.CheckBox" मेरे कुछ विकल्प बॉक्स और टॉगल बटन लौटा रहा है और मुझे पता नहीं क्यों "ऐड नॉट" बयान इसे ठीक करने के लिए लगता है लेकिन यह अभी भी अजीब लगता है कि यह हो रहा है।



1
इस प्रश्न का उत्तर दिया गया है (एक कोड नमूने सहित) पर http://stackoverflow.com/questions/34877566/how-make-vba-run-on-clicking-any-checkbox-in-a-userform
geodekl
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.