Как я могу отключить кнопку на листе? - PullRequest
0 голосов
/ 29 января 2020

Я пытаюсь отключить кнопку на листе.

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

Вот мой скрипт для кнопки:

Sub LinkFile()
Call Module1.setup
Dim btn1 As Button
Dim t As Range

Set t = Range(Cells(3, "G"), Cells(4, "I"))

Set btn1 = ACImport.Buttons.Add(Left:=t.Left, Top:=t.Top, Width:=t.Width, Height:=t.Height)
btn1.Name = "Button1"
btn1.OnAction = "FileSearch"    ' MySub is executed when btn is clicked
btn1.Caption = "GO!"
End Sub

Ответы [ 2 ]

0 голосов
/ 29 января 2020

Обходной путь может заключаться в том, чтобы "отключить" кнопку, подобную этой

Sub DisableBtn()

    Dim btn As Button
    Dim wks As Worksheet
    Set wks = ActiveSheet ' replace with the sheetname the button is on

    Set btn = wks.Buttons("Button1")
    btn.Font.ColorIndex = 15
    btn.Enabled = False

End Sub

Но вы все равно можете нажать на кнопку, чтобы вам нужно было изменить Filesearch как этот

Sub FileSearch()

    Dim btn As Button
    Dim wks As Worksheet

    Set wks = ActiveSheet
    Set btn = wks.Buttons("Button1")

    If btn.Enabled Then
        ' Your action here
        MsgBox "FileSearch"
    End If
End Sub

Чтобы «включить» кнопку снова, вы используете этот код

Sub Enablebtn()
    Dim btn As Button
    Dim wks As Worksheet
    Set wks = ActiveSheet ' replace with the sheetname the button is on

    Set btn = wks.Buttons("Button1")
    btn.Font.ColorIndex = 1
    btn.Enabled = True

End Sub

Как уже говорилось, это обходной путь, и все еще можно нажать на неактивную кнопку: - (

0 голосов
/ 29 января 2020

Для пользовательских форм и кнопок ActiveX это будет работать:

btn1.Enabled = False


Для другой кнопки рабочего листа вы можете попробовать:

btn1.ControlFormat.Ebabled = False

или

ACImport.Shapes("Button1").ControlFormat.Enabled = False


Если это не сработает, вам придется позвонить в суд. Вы можете переключиться на кнопку ActiveX. Удалите кнопку с листа и поместите ее в пользовательскую форму. Сдавайся и оставь кнопку включенной. Или творчески растяните границы sh, используя различные стратегии для создания желаемого эффекта.

Например, если для свойства OnAction установлено значение vbNullString. Это не только нейтрализует кнопку, но и меняет поведение кнопки во время выполнения, так что один щелчок левой кнопкой мыши переводит ее в режим редактирования подписи. Он может быть использован для нового и весьма неортодоксального квази-буфера обмена.

Или вы можете * на 1037 * больше мейнстрима, возможно, с помощью решения @ Storax.

Или, возможно, добавьте немного аромата, кратко изменив цвет при нажатии. Простая анимация добавляет приятное прикосновение, на самом деле, я предпочитаю это, а не нажимаемую кнопку.

Вы можете перепрыгнуть акулу и превратить всю эту клики в инструмент улучшения гнева, улучшающий настроение. Или жестокая шутка с офисным стажером. Или веселая шутка с вашим боссом.

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

Но в конце концов, если кнопка не анимирована, она так же полезна, как и статичное c изображение. Так что, может быть, вы просто хотите использовать картинку вместо кнопки.

С таким большим выбором, как будто мир - твоя устрица ...

... Так что go найди немного жемчуг!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...