【问题标题】:After input in text box how do cause AfterUpdate event to run?在文本框中输入后如何导致 AfterUpdate 事件运行?
【发布时间】:2014-07-03 04:20:33
【问题描述】:

我有一个带有多个文本框的 Excel VBA 用户表单。
用户将在文本框中输入权重。然后他们可以在表单上执行其他操作或单击应用、更新、上一个事件、下一个事件或取消。

权重输入后,必须进行验证,如果OK,则表格标记为mbFormChanged=True。此验证发生在文本框的 AfterUpdate 事件中。

我的问题是,如果用户输入一个值并立即单击“应用”、“更新”、“上一个事件”或“下一个事件”,则该字段不会被验证,就好像它从未更改过一样。

即输入体重:200[更新]

但是,如果用户在输入权重后切换到另一个字段,那么它会被验证并且表单被标记为已更改。

即输入重量:200[Tab][更新]

如何确保 AfterUpdate 在之后立即单击命令按钮时运行?

我不能在 OK/Apply 处进行验证,因为当用户输入新权重并且它有效时,它会立即更新表单上可见的许多其他字段和列表(实时更新)。

【问题讨论】:

  • 添加一个 Change_Event,如果用户完成输入重量,它将提示用户(使用 MsgBox)。如果他按下 ok,则使用 SetFocus 属性将焦点传递给其他控件。

标签: excel vba textbox


【解决方案1】:

我假设这是一个 Excel 用户表单,在这种情况下,我认为没有内置的 AfterUpdate 事件。 Excel 表单没有绑定到任何东西(与 Access 不同),因此 form 没有任何更新。您需要创建自己的 AfterUpdate 事件。

【讨论】:

  • 是的,Excel。所有文本框都有一个内置的 AfterUpdate 事件。我的名为 txtNewWeight_AfterUpdate() ,其中放置了我的验证脚本。我只是不知道如何让它在用户输入新值后立即按下命令按钮时启动。
  • 当您离开文本框时,您的更新后触发。当用户单击按钮时,更新后的时间已经过去了。你能不能只通过你的按钮点击调用验证码,因为那是你希望它发生的时候?
  • 谢谢,但我需要立即进行验证,因为除了验证之外,其他相关字段可能会在单击最终确定/应用之前立即更新。 (更新了我的问题来说明这一点。)
  • @ShariW 如果用户单击确定并且验证失败,您不应该继续进行更新。您可以在文本框失去焦点时验证文本框(正常的 AfterUpdate 事件),也可以在单击提交按钮时验证表单。
  • 让我们想想你在这里说什么I can't put the validation at the point of OK/Apply because the moment a user enters a new weight and it is valid [do stuff] 你说这是在这里做的地方:and it is valid 即通过验证。点击 -> 验证 -> 如果有效 更新你的东西,如果无效就叫出无效的东西,不要更新。
【解决方案2】:

我知道这是一个旧的/死的线程,我当然希望原来的问题已经解决,但如果其他人正在搜索这个,这是我在类似情况下所做的:用“确定”打开您的表单' / '完成' / '退出' 或您用来确认表单条目的任何按钮,然后以禁用状态退出表单。这样,如果单击它们,它们将不执行任何操作。一旦您的数据验证完成,启用那些按钮(或圈回更正的条目)。

【讨论】:

    【解决方案3】:

    正如评论,你可以试试这个:

    Private Sub TextBox1_Change()
        If (MsgBox("Done?", vbYesNo)) = vbYes Then Me.TextBox2.SetFocus 'Or any other ctrl
    End Sub
    

    上面的代码喜欢强制 TextBox1_AfterUpdate() 事件。

    【讨论】:

    • 谢谢。这适用于某些应用程序和输入类型,但不适用于我的。它在每个字符输入后检查完成。所以如果我必须输入 75.3,这个问题会出现四次。哪怕一次也太多了。我需要它来检测光标何时离开该框(?)
    猜你喜欢
    • 2014-05-24
    • 2019-11-30
    • 1970-01-01
    • 1970-01-01
    • 2010-12-31
    • 1970-01-01
    • 1970-01-01
    • 2020-02-17
    • 2014-04-25
    相关资源
    最近更新 更多