如何解决VBA Excel:用户表单文本框未在用户表单框架中正确更新
我试图在 VBA 文本框中创建一个修改输入的系统,以便其余脚本可以正常工作。这些文本框以及其他选项位于可以打开和关闭的框架中。这样做是为了保持表格对其他人可读。我知道这可以通过在代码中编辑字符串 soley 来完成(并且已经这样做以继续处理项目)但我认为 ppl 可以直观地看到代码所做的编辑。
然而,这些更新充其量是不一致的。我有 2 个文本框,它们使用相同的代码行进行编辑,并且它们都设置为在文本框退出后自行更新。一个只有在其所在框架内的某些内容被再次点击时才会更新,而另一个则根本不更新,无论在其框架内或框架外点击什么。
理想情况下,当文本框被编辑并且其他内容被点击时文本框会更新,但我尝试修复它们时没有任何运气。
更新 仅当单击或选择框架中的其他复选框等其他内容时才会更新自身,然后在单击框架外时它也会工作。有人知道为什么吗?
两者的代码
Private Sub Pathbox_Change()
End Sub
Private Sub Pathbox_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim sDir As String
sDir = S5Int.Pathbox.Text
If Right(sDir,1) <> "\" Then
S5Int.Pathbox.Text = sDir & "\"
End If
End Sub
除了程序名称之外,poth 的代码完全相同。除了名称之外,框架也完全相同。在形式中,它们看起来像这样:
解决方法
上周找到了解决方案;
每当单击表单本身时,我都将更新触发器放在表单本身上,它会运行检查以查看需要更新和更新的内容;它有点粗糙,但效果很好。如果单击表单以外的其他内容,则此解决方案将不起作用,但这对 Textbox1_Exit(等)不起作用。因为它只在表单位于最前面时更新表单。
这也有点浪费周期,因为它每次点击表单上的任何内容时都会运行,但只要检查有效,它应该足够好。
我会继续努力寻找更好的解决方案,但是当我有时间时,也许看看我是否可以像 FaneDuru 所说的那样从框架中退出,但表单上的其他内容似乎暂时阻止了该解决方案。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。