Мне нужно ввести несколько символов в текстовое поле ActiveX в PowerPoint до того, как начнется марко. Текущий макрос срабатывает по мере ввода каждого символа.Как ввести несколько символов в TextBox1_Change
Private Sub TextBox1_Change()
IF TextBox1.Value = "18" then
MsgBox "You have entered 18"
End If
End Sub
Предыдущие попытки потерпели неудачу, так что я должен был добавить CommandButton
, что будет инициировать действия после того, как все символы были набраны в текстовом поле, однако он является громоздким для ввода и нажмите кнопку для выполнения задач. Поэтому было бы еще лучше, если бы макрос был запущен после нажатия клавиши Enter/Return после ввода необходимых данных. Я попытался KeyPress
и KeyDown
и то есть
Private Sub TextBox1_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyReturn Then
MsgBox "hello"
End If
End Sub
, но этот код дал мне ошибку компиляции:
Procedure declaration does not match description of event or procedure having the same name.
Я вставил ваш код и обновил правильный номер слайда. Хотя код действительно позволяет мне вводить несколько символов, он не запускался, когда я нажимал Enter, только когда я нажимаю в неиспользуемом пространстве презентации (что было бы лучше, если бы я нажал на кнопку команды, чтобы ввести/отправить данные), и когда я нажал Esc, но клавиша Esc закрыла презентацию после отображения окна сообщения. – Rgremer
Событие LostFocus не срабатывает, пока вы не выйдете из текстового поля. И кажется, что текстовое поле «проглатывает» клавишу «Ввод» при нажатии на нее; событие изменения не срабатывает, поэтому я не уверен, как вы можете его заманить. –