首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在文本框中输入后,如何使AfterUpdate事件运行?

在文本框中输入后,如何使AfterUpdate事件运行?
EN

Stack Overflow用户
提问于 2014-07-03 12:20:33
回答 3查看 16.3K关注 0票数 0

我有一个带有几个文本框的Excel VBA用户表单。

用户将在文本框中输入权重。然后,他们可以在表单上执行其他操作,或者单击Apply、Update、Previous Event、Next Event或Cancel。

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

我的问题是,如果用户键入一个值,然后立即单击Apply、Update、Previous Event或Next Event,则该字段不会被验证,就好像它从未更改过一样。

即输入权重:200更新

但是,如果用户在键入权重后切换到另一个字段,则会对其进行验证,并将表单标记为已更改。

例如,输入权重: 200Tab

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

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

EN

回答 3

Stack Overflow用户

发布于 2014-07-03 12:53:25

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

票数 0
EN

Stack Overflow用户

发布于 2021-11-08 18:32:05

我知道这是一个老的/死的线程,我当然希望原来的问题已经解决了,但是如果其他人正在搜索这个,这里是我在类似情况下所做的:用'Ok‘/ ' done’/‘exit’或任何你用来确认表单条目的按钮打开你的表单,然后在禁用状态下退出表单。这样,当你的数据验证完成后,它们不会做任何事情。一旦你的数据验证完成,启用这些按钮(或圈回更正的条目)。

票数 0
EN

Stack Overflow用户

发布于 2014-07-03 16:19:29

正如评论所说,您可以尝试这样做:

代码语言:javascript
运行
复制
Private Sub TextBox1_Change()
    If (MsgBox("Done?", vbYesNo)) = vbYes Then Me.TextBox2.SetFocus 'Or any other ctrl
End Sub

上面的代码类似于forces TextBox1_AfterUpdate()事件。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24544875

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档