اكسل VBA - وقفة الأحداث حين استكمال تحرير وسرد
سؤال
ولدي طلب مكتوب في VBA لبرنامج Excel التي تأخذ في تغذية بيانات حية. كلما كان هناك تغيير في البيانات، يتم تشغيل الأحداث المختلفة داخل VBA.
ولدي أيضا بعض UserForms مع كومبوبوكسيس عليها. مشكلتي هي أنني عندما انقر على السهم لأسفل على تحرير وسرد ومحاولة لجعل الاختيار، لحظة أحصل على التحديث من خلاصة البيانات، ويعيد تحرير وسرد. ما أود القيام به هو إيقاف الأحداث بينما أنا على صنع اختياري في تحرير وسرد ثم استئنافه عندما انتهيت. كيف تولد هذه الوظيفة؟
المحلول
وربما يمكنك وضع العلم لتجاوز حالة التحديث على منسدل الخاص بك حتى يتم إجراء الاختيار.
Private bLock as boolean ' declare at module level
' When a user clicks on the combobox
Private Sub DropDownArrow_Click() ' or cboComboBox_Click()
bLocked = True
End Sub
' This procedure is the one that does the updating from the data source.
' If the flag is set, do not touch the comboboxes.
Private Sub subUpdateComboBoxes()
If Not bLocked then
' Update the comboboxes
End If
End Sub
' When the selection is made, or the focus changes from the combobox.
' check if a selection is made and reset the flag.
Private Sub cboComboBox_AfterUpdate() ' Or LostFucus or something else
if Format(cboComboBox.Value) <> vbNullString Then
bLocked = False
End If
End Sub
وعلى أمل أن يساعد.
نصائح أخرى
وهذه محاولة لإيقاف:
<اقتباس فقرة>وapplication.enableevents = كاذبة
اقتباس فقرة>وهذا بدوره يعود على:
<اقتباس فقرة>وapplication.enableevents = صحيح
اقتباس فقرة>لوقفة وتظهر رسالة والاستمرار في العمل على شيء خلال وقفة. أخيرا اضغط على زر
Public Ready As Boolean
Private Sub Command1_Click()
Ready = True
End Sub
Private Sub Form_Load()
Me.Show
Ready = False
Call Wait
Label1.Visible = True
End Sub
Public Function Wait()
Do While Ready = False
DoEvents
Loop
End Function