在我的 Excel VBA 用户窗体上有一个文本框,用户应在其中输入 dd-mm-yy
格式的日期。如果输入为 09-22-13
,则应更新为 22-09-2013
。该文本框的 ControlSource 属性设置为单元格的地址;该单元格的值也应变为 22-09-2013
。
我尝试过的所有事件处理程序的问题是 ControlSource 的值在处理程序被触发之前更新,并且我无法更改 ControlSource 的值,除非我对其地址进行硬编码(这是我想避免的事情) .
你能帮忙吗?谢谢。
Private Sub TextBox_MyDate_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
TextBox_MynDate.Value = Format(TextBox_MyDate.Value, "dd/mm/yyyy")
' TextBox_MyDate.ControlSource.Value = TextBox_MyDate.Value does not compile
DoEvents
End Sub
最佳答案
这里需要考虑一下,controlsource update
和 event order
似乎无法更改,因此您可以尝试添加 worksheet_change
事件在 textbox 事件
之前,因为前者在 textbox 事件
存在之前触发..
- 它说,如果您使用 ContolSource,则每次相关单元格更改时文本框都会刷新,但请注意,反之亦然。更改文本框,单元格也会更改
关于vba - 如何强制 ControlSource 更新(excel 用户窗体),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14462908/