Назначение сочетания клавиш для SpinButton в Excel - PullRequest
0 голосов
/ 05 августа 2020

Я связал Spinbutton со списком ячеек (с разными значениями в каждой ячейке). Spinbutton работает феноменально, я просто хотел бы иметь возможность иметь сочетание клавиш, которое автоматически изменяло бы вращающуюся кнопку вверх или вниз в зависимости от сочетания клавиш на клавиатуре. Если бы я мог вызвать этот код, он бы тоже работал.

Private Sub SpinButton1_SpinDown()
If Me.ComboBox1.ListIndex = Me.ComboBox1.ListCount - 1 Then Exit Sub
Me.ComboBox1.ListIndex = Me.ComboBox1.ListIndex + 1
End Sub

Private Sub SpinButton1_SpinUp()
If Me.ComboBox1.ListIndex = 0 Then Exit Sub
Me.ComboBox1.ListIndex = Me.ComboBox1.ListIndex - 1
End Sub

введите здесь описание изображения

1 Ответ

0 голосов
/ 05 августа 2020

Допустим, ваш Spinbutton расположен на листе с кодовым именем Sheet1, тогда вы можете включить в модуль кода объекта ThisWorkbook следующее:

Private Sub Workbook_Open()

    'Set keyboard shortcuts
    Application.OnKey "^%{DOWN}", "Sheet1.SpinButton1_SpinDown"
    Application.OnKey "^%{UP}", "Sheet1.SpinButton1_SpinUp"
    Msgbox "Keyboard shortcuts are now active."

End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    
    'Reset keyboard shortcuts
    Application.OnKey "^%{DOWN}", ""
    Application.OnKey "^%{UP}", ""
    
End Sub

Напоминание:

SHIFT = + (знак плюса)

CTRL = ^ (каретка)

ALT =% (знак процента)

Подробнее

Таким образом, каждый раз, когда вы открываете книгу, сочетания клавиш будут назначаться и удаляться при закрытии книги. Сочетание клавиш Ctrl + Alt + UpArrow вызовет процедуру SpinUp, а Ctrl + Alt + DownArrow вызовет процедуру SpinDown.

Обратите внимание, что кодовое имя листа отличается от имени листа. Кодовое имя листа всегда находится слева в окне проводника проекта:

введите описание изображения здесь

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