Отключить кнопку в пользовательской форме - PullRequest
0 голосов
/ 05 апреля 2011

Я пытаюсь выяснить, как отключить кнопку в моей пользовательской форме, если определенная ячейка в моей электронной таблице равна определенному числу. Я попробовал код, указанный ниже, но он не работает.

Private Sub UserForm_Initialize()
Label2 = Sheets("DATA").Range("AM2").Value
Label4 = Sheets("DATA").Range("AO2").Value
Label7 = Format(Sheets("DATA").Range("R8").Value, "Currency")

If Sheets("DATA").Range("AL10").Value = 10 Then
ActiveSheet.Shapes("CommandButton1").Select
UserFormact_Upgrade.CommandButton1.Enabled = False

Else


End If

End Sub

Ответы [ 3 ]

5 голосов
/ 05 апреля 2011

Ваш код должен работать, поскольку вы находитесь на правильном пути.

Чтобы протестировать его, просто создайте новую форму и добавьте этот код, и вы увидите, что он должен работать.Может быть, у вас есть проблемы в предложении IF?

Кроме того, вам не нужно выбирать форму перед ее отключением;просто отключите его прямо сейчас.

Private Sub UserForm_Initialize()

    CommandButton1.Enabled = False

End Sub
1 голос
/ 23 сентября 2016

Я знаю, что это старый, но попал в эту ветку, пытаясь решить мою проблему, и нашел решение, которое здесь не упоминалось. Поэтому, если кто-то попадет сюда, как я, а это не совсем помогло ему, я подумал, что это может помочь.

У меня была пользовательская форма с раскрывающимся списком с именем cmdADAMFields, и я не хотел, чтобы моя кнопка отправки с именем FieldsSubmitButton была включена, пока я не выбрал что-то из раскрывающегося списка.

Мне пришлось разбить свой аргумент на две разные частные подпрограммы против одного более крупного оператора If-Then-Else.

Сначала я положил:

Private Sub UserForm_Activate()
If cmbADAMFields.ListIndex = -1 Then FieldsSubmitButton.Enabled = False
End Sub

Затем, когда для приватного сабвуфера моего раскрытия, когда изменилось его значение, я написал:

Private Sub cmbADAMFields_Change()
FieldsSubmitButton.Enabled = True
End Sub
0 голосов
/ 15 ноября 2012

Правильное место для установки Включено свойство находится в Активировать событие (связано с Показать метод), а не Инициализировать событие (связано с инструкцией Load ). Приведенный ниже код отключает кнопку CommandButton1 , когда ячейка AL10> = 10.

        Private Sub UserForm_Activate()
           CommandButton1.Enabled = ( Sheets("DATA").Range("AL10") < 10 )
        End Sub

Для кнопок вы можете выбрать между обычными кнопками (свойство Включено = Ложь и свойство Видимый = true), отключено кнопками ( свойство включено = ложь и свойство видимое = истина) и невидимые кнопки (свойство включено = ложь и свойство видимое = False), что в большинстве случаев это более чистый интерфейс.

Относительно текстовых полей, кроме обычный , отключен и невидим статус, есть статус заблокирован , который включен и видим , но не может быть отредактировано пользователем. (свойство заблокировано = True)

Только заблокированный элемент управления может быть изменен кодом VBA. Например, кто-то может включить текстовые поля даты, которые заполняются с помощью дополнительной всплывающей формы даты с элементом управления Calendar.

...