vba - 如何强制 ControlSource 更新(excel 用户窗体)

标签 vba datetime excel event-handling userform

在我的 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 updateevent order 似乎无法更改,因此您可以尝试添加 worksheet_change 事件在 textbox 事件 之前,因为前者在 textbox 事件 存在之前触发..

Reference:

  • 它说,如果您使用 ContolSource,则每次相关单元格更改时文本框都会刷新,但请注意,反之亦然。更改文本框,单元格也会更改

关于vba - 如何强制 ControlSource 更新(excel 用户窗体),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14462908/

相关文章:

excel - 循环遍历填充颜色的单元格直到空白

vba - 无法从 .vbs 文件执行宏

regex - 将多个匹配项返回到单个单元格中的 Excel VBA Regex 函数

excel - VBA从数据验证列表创建文件夹并允许用户选择文件夹

Excel VBA - 如何在代码编辑器中打开行号

sql - Oracle 从 SYSDATE 中减去 5 个工作日

MySQL - 时间戳列上的 ER_TRUNCATED_WRONG_VALUE : Incorrect datetime value,

sql - 从位掩码确定一周中的几天

excel - 将变量放入公式并使其逐行推进的问题

json - 如何使用 Excel vba 从 json 字符串中的 json 对列表中找到最大值?