На фокус после раскрытия вкладки Excel, автоматически показать список для выбора - PullRequest
2 голосов
/ 29 июня 2011

У меня есть несколько выпадающих списков для проверки данных в Excel, я могу пролистать все списки, но мне нужно нажать Alt + стрелку вниз, чтобы показать список. Это способ, которым они могут быть автоматически показаны, как только я сосредоточусь навкладка.
Таким образом, в центре внимания выпадающего списка, я хотел бы, чтобы список появился, чтобы я мог выбрать его с помощью клавиши со стрелкой вниз и нажать Enter, чтобы выбрать его.
Любые другие полезные советы для выпадающегосписки и VBA было бы здорово!

Ответы [ 2 ]

2 голосов
/ 01 июля 2011

edit: все еще с использованием ключей отправки VBA.

На листе, где находится ячейка проверки данных (предполагается, что это ячейки A1: C1 на Sheet1), вставьте следующий код в модуль Microsoft Excel Sheet1модуль, содержащий код VBA, связанный с первым листом)

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    On Error GoTo Err1:

    If Target = Range("A1") Then
        Application.SendKeys ("%{UP}")
    End If

    If Target = Range("B1") Then
        Application.SendKeys ("%{UP}")
    End If

    If Target = Range("C1") Then
        Application.SendKeys ("%{UP}")
    End If

Err1:
    'do nothing
End Sub
1 голос
/ 13 ноября 2013

Я нашел это полезным, но хотел бы передать пару замечаний.

  1. Использование

    Если Target.Cells.Count = 1, то

    If Target.Validation.InCellDropdown = True Тогда

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

  1. Остерегайтесь посылать ключи, вызываемые дважды подряд. Он отключает блокировку num, и мне пришлось добавить вызов API, чтобы снова включить его.

Надеюсь, это поможет другим

...