首页 > 解决方案 > 更新用户表单框架中的用户表单文本框

问题描述

我正在尝试在修改输入的 VBA 文本框中创建一个系统。

文本框以及其他选项位于可以打开和关闭的框架中。这样做是为了保持表单对其他人的可读性。

我知道可以通过仅在代码中编辑字符串来完成(并且已经这样做以继续处理项目),但我希望人们看到代码所做的编辑。

这些更新不一致。我有两个文本框,它们使用相同的代码行进行编辑,并且一旦退出文本框,它们都设置为更新自己。仅当再次单击其所在框架内的某些内容时,一个才会更新,而另一个无论是在其框架内还是外部单击都不会更新。

理想情况下,文本框被编辑并且其他内容被点击文本框更新的那一刻。

更新
仅当单击或选中框架中的另一个复选框等其他内容时才更新自身,并且在框架外单击时它也将起作用。有谁知道为什么?

两者的代码

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

除了过程名称外,两者的代码相同。除了名称之外,框架也相同。在形式中,它们看起来像这样:

带有文本框的表单
带有相关文本框的表格

元素的设置也相同
框架设置文本框的设置

标签: excelvbauserform

解决方案


上周找到了解决方案;
每当单击表单本身时,我刚刚将更新触发器放在表单本身上,它会运行检查以查看需要更新和更新的内容;它有点粗糙,但效果很好。如果单击表单以外的其他内容,则此解决方案将不起作用,但对于 Textbox1_Exit(etc) 也不起作用。因为它只在表单位于最前面时更新表单。
这也有点浪费循环,因为它每次单击表单上的任何内容时都会运行,但只要检查有效,它就足够了。

我将继续研究更好的解决方案,但是当我有时间时,也许看看我是否可以像 FaneDuru 所说的那样退出框架工作,但表格上的其他东西似乎暂时阻止了该解决方案。


推荐阅读