2015-04-15 2 views
-1

Я относительно новый, но быстро обучаюсь. У меня есть ячейка (Sheet8.Range («E15»)), которая генерирует TRUE или FALSE (логическое) на основе других условий. Моя цель состоит в том, что когда эта ячейка = ИСТИНА, кнопка активна. Если значение ячейки изменяется на FALSE, я хочу, чтобы кнопка была неактивной. Спасибо за помощь!Активация и деактивация командной кнопки на основе значения ячейки

Private Sub Worksheet_Change(ByVal Target As Range) 

Dim KeyCells As Range 
Set KeyCells = Sheet8.Range("E15") 

If Not Application.Intersect(KeyCells, Range(Target.Address)) Is Nothing Then 

     If Sheet8.Range("E15").Value = True Then CommandButton1.Enabled = True 
     If Sheet8.Range("E15").Value = False Then CommandButton1.Enabled = False 

End If 

End Sub 

ответ

0

Проблема здесь заключается в том, что значение ячейки фактически не изменяется, что не вызывает макрос.

Если вы измените макрос из Worksheet_Change в Selection_Change, этот макрос будет запускаться после каждого действия пользователя. Это должно решить вашу проблему.

Используйте KeyCells.Value вместо листа и измените название кнопки на что-то более подробное описание.

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 

Dim KeyCells As Range 
Set KeyCells = Sheet8.Range("E15") 

If KeyCells.Value = TRUE Then 
    CommandButton1.Enabled = True 
Else 
    CommandButton1.Enabled = False 
End If 

End Sub 
+0

Я получил его, чтобы работать, спасибо вам !!!!!!!!! – Derek

Смежные вопросы