जब कोई उपयोगकर्ता जांच में कोई चेक बॉक्स मान बदलता है तो मैं कोड कैसे चला सकता हूं
मैं एक क्लास मॉड्यूल का उपयोग करने का प्रयास कर रहा हूं लेकिन कोड एक अजीब तरीके से काम कर रहा है जो मुझे समझ में नहीं आता है
कोड केवल यह पहचानेगा कि एक चेकबॉक्स का मूल्य पहली बार ऐसा होने पर बदल गया है, और केवल तभी, कोड में _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" मेरे कुछ विकल्प बॉक्स और टॉगल बटन लौटा रहा है और मुझे पता नहीं क्यों "ऐड नॉट" बयान इसे ठीक करने के लिए लगता है लेकिन यह अभी भी अजीब लगता है कि यह हो रहा है।
stackoverflow.com/questions/5940596/...
—
Raystafarian
इस प्रश्न का उत्तर दिया गया है (एक कोड नमूने सहित) पर http://stackoverflow.com/questions/34877566/how-make-vba-run-on-clicking-any-checkbox-in-a-userform
—
geodekl