سؤال

وأحتاج لمنع المستخدم من اختيار قيمة في بعض إكسل تحكم 2007 منسدل إدراجها عن طريق القائمة المطور من قبل الشرط. الآن تمكنت فقط لإظهار / إخفاء عنصر التحكم.

ActiveWorkbook.Worksheets("summary").Shapes("months").Visible = year <> ""

هل من الممكن لتمكين / تعطيل أنه بدلا من ذلك؟

هل كانت مفيدة؟

المحلول

وهذا لا يؤدي إلى سيطرة "نموذجية" تمكين / تعطيل التي ستحصل عليه لو كنت تستخدم منسدل اكتف بدلا من منسدل أشكال، ولكنه منع المستخدم من الوصول إليه:

Sub ChangeState()

    Dim shp As Shape
    Set shp = ActiveWorkbook.Worksheets("summary").Shapes("months")
    shp.ControlFormat.Enabled = Not shp.ControlFormat.Enabled

End Sub

نصائح أخرى

ولقد كانت لدينا نفس المشاكل مع MS الوصول.

والدولة (تمكين / تعطيل) مختلفة لعرض (لون الخلفية = الرمادي)

وكانت الطريقة اعتدت للالتفاف على هذا أن تفعل كل من:

Dim enabled As Boolean
enabled = year <> ""

ActiveWorkbook.Worksheets("Sheet1").Shapes(1).Enabled = enabled

If enabled Then
    ActiveWorkbook.Worksheets("Sheet1").Shapes("months").BackColor = rgbGrey
Else
    ActiveWorkbook.Worksheets("Sheet1").Shapes("months").BackColor = rgbWheat
End If

ولقد وجدت ما يمكن تعطيل التحكم منسدل من قبل

ActiveWorkbook.Worksheets("summary").DropDowns("months").Enabled = year <> ""

ولكن للأسف لن رمادي لإظهار بصريا حالته.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top