【问题标题】:How do I enter multiple characters in TextBox1_Change如何在 TextBox1_Change 中输入多个字符
【发布时间】:2016-07-22 01:05:38
【问题描述】:

我需要在宏触发之前在 PowerPoint 中的 ActiveX 文本框中输入多个字符。当前宏在键入每个字符时触发。

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

但是那个代码给了我一个编译错误:

过程声明与同名事件或过程的描述不匹配。

【问题讨论】:

    标签: vba powerpoint


    【解决方案1】:

    也许 LostFocus 事件会更有用。假设 TextBox1 在幻灯片 1 上:

    Private Sub TextBox1_LostFocus()
      MsgBox ActivePresentation.Slides(1).Shapes("TextBox1").OLEFormat.Object.Text
    End Sub
    

    【讨论】:

    • 我粘贴了您的代码并更新了正确的幻灯片编号。虽然代码确实允许我输入多个字符,但当我按下 Enter 时它没有运行,只有当我点击演示文稿的未使用空间时(如果我让他们点击命令按钮输入/提交会更好)数据),当我按 Esc 时,但 Esc 键在显示消息框后关闭了演示文稿。
    • LostFocus 事件不会触发,直到您单击文本框外。当您按下 Enter 键时,似乎文本框会“吞下”它;更改事件不会触发,所以我不确定如何捕获它。
    猜你喜欢
    • 2021-05-14
    • 1970-01-01
    • 2021-12-23
    • 2016-02-18
    • 1970-01-01
    • 2019-08-28
    • 2015-11-18
    • 2021-03-30
    • 1970-01-01
    相关资源
    最近更新 更多