Ich muss mehrere Zeichen in eine ActiveX-Textbox in PowerPoint eingeben, bevor der Marco feuert. Das aktuelle Makro wird ausgelöst, wenn jedes Zeichen eingegeben wird.Wie gebe ich mehrere Zeichen in TextBox1_Change ein
Private Sub TextBox1_Change()
IF TextBox1.Value = "18" then
MsgBox "You have entered 18"
End If
End Sub
Frühere Versuche waren gescheitert, so musste ich einen CommandButton
hinzufügen, die die Aktionen, nachdem alle Zeichen in das Textfeld eingegeben wurden auslösen würde, aber es ist umständlich zu tippen und klicken Sie auf Aufgaben auszuführen. So wäre es noch besser, wenn das Makro nach dem Drücken der Enter/Return-Taste nach Eingabe der erforderlichen Daten ausgelöst würde. Ich habe versucht, KeyPress
und KeyDown
und das heißt
Private Sub TextBox1_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyReturn Then
MsgBox "hello"
End If
End Sub
aber das Code gab mir einen Compiler-Fehler:
Procedure declaration does not match description of event or procedure having the same name.
Ich habe Ihren Code eingefügt und aktualisiert die richtige Folie Nummer. Während der Code mir erlaubte, mehrere Zeichen einzugeben, lief er nicht, wenn ich die Eingabetaste betätigte, nur wenn ich in den unbenutzten Bereich der Präsentation klickte (was besser wäre, wenn ich sie hätte, klicken Sie auf eine Befehlsschaltfläche zum Eingeben/Übergeben der Daten) und wenn ich Esc drückte, aber die Esc-Taste schloss die Präsentation nach dem Anzeigen der Nachrichtenbox. – Rgremer
Das LostFocus-Ereignis wird nicht ausgelöst, bis Sie aus dem Textfeld klicken. Und es scheint, dass das Textfeld die Eingabetaste "schluckt", wenn Sie es drücken; Das Änderungsereignis wird nicht ausgelöst, daher bin ich mir nicht sicher, wie Sie es einfangen können. –