excel - 更新用户表单框架中的用户表单文本框
问题描述
我正在尝试在修改输入的 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
除了过程名称外,两者的代码相同。除了名称之外,框架也相同。在形式中,它们看起来像这样:
解决方案
上周找到了解决方案;
每当单击表单本身时,我刚刚将更新触发器放在表单本身上,它会运行检查以查看需要更新和更新的内容;它有点粗糙,但效果很好。如果单击表单以外的其他内容,则此解决方案将不起作用,但对于 Textbox1_Exit(etc) 也不起作用。因为它只在表单位于最前面时更新表单。
这也有点浪费循环,因为它每次单击表单上的任何内容时都会运行,但只要检查有效,它就足够了。
我将继续研究更好的解决方案,但是当我有时间时,也许看看我是否可以像 FaneDuru 所说的那样退出框架工作,但表格上的其他东西似乎暂时阻止了该解决方案。
推荐阅读
- sml - 如果第一个列表存在于第二个列表中,如何创建一个将两个列表作为参数并返回 true 的函数?
- fortran - 如何在 Fortran 中读取内容未用空格分隔的 2D 文件
- php - Quickbooks:如何通过交易列表获取客户
- acumatica - AMRPDetail 和 AMProdItem 之间的关系
- angular - 地图运算符不返回正确的结果
- ios - 安装后无法导入本地 CocoaPod
- html - 为什么图像从彩色叠加层中窥视?
- excel - 创建一个数组,然后用一个键盘命令一次填充一个位置?
- powerbi - 通过组合单独的日期和时间列创建一个新的数据时间列
- botframework - 尝试将Skype api与提琴手和脚本一起使用时出错