У меня есть пользовательская форма с несколькими списками со списком. Пользователь может ввести новый элемент или выбрать один из списка.OnKey «Удалить» clear combobox
Он может начать печатать первые буквы требуемого предмета, но когда он совершает ошибку и начинает с, например, «b» вместо «n» он должен очистить combobox вручную или найти элемент в списке с помощью мыши или стрелок.
Я хотел бы быстро снять ящик с помощью клавиши удаления, чтобы пользователь мог начать печатать снова. Но я не знаю, куда поместить эту строку кода, если она правильная (введите событие, измените событие, другое, может быть?).
Application.OnKey "{Delete}", "WyczyscPole"
Первый Excel должен знать, в каком поле находится пользователь, а затем очистить его.
Я попытался создать отдельный модуль с переменной, которая узнает текущее имя combobox и очистит его в следующем шаге. Но я не знаю, правильно ли называется sub ниже.
Sub WyczyscPole()
Dim NazwaPola As ComboBox
NazwaPola = frmZakupy.ActiveControl.Name
NazwaPola.Clear
End Sub
Спасибо, работает как шарм. Не могли бы вы рассказать мне, почему вы использовали событие KeyDown? Разве это не KeyPress? Будет ли это иметь значение? – kkris77
Я не знаю почему, но KeyPress не захватывает такие ключи, как Delete и Backspace, поэтому вам нужно использовать KeyDown (или KeyUp). –