【问题标题】:Excel form changes date to US formatExcel 表格将日期更改为美国格式
【发布时间】:2015-03-10 10:54:39
【问题描述】:

如何防止 Excel 表单上的文本框将日期重新格式化为美国格式? 我在 Excel 中有一个包含文本框的表单。文本框在工作表上有一个单元格作为它的控制源。例如Settings!B9 引用单元格 (Settings!B9) 的内容是以英国格式格式化的日期。但是,当显示表单时,它会将日期重新格式化为美国格式。这不是用户所期望的,并且用户并不总是清楚它正在这样做,这可能会导致一些灾难性的后果。我看不到允许我控制日期格式的文本框的任何属性,并且单元格的日期格式正确设置为 *dd/mm/yyyy。由于重新格式化是在幕后完成的,我什至看不到如何使用 VBA 来改变它,因为它需要以某种方式中断文本框和引用单元格之间的绑定。

【问题讨论】:

  • 加上一个好问题,但我不确定你能做到。你不能允许在工作表上直接编辑吗?使单元格看起来像一个文本框。
  • @Bathsheba 用户可以编辑工作表,但我试图通过使用表单让他们更轻松。表单上还有很多其他设置,包括带有 VBA 代码的组合框等,所以不幸的是它并不是那么简单。我很难相信没有办法做到这一点,所以在这里发布了这个问题,因为之前似乎没有人问过这个确切的问题;尽管有很多关于在 VBA 代码中更改日期格式的问题!希望有人知道一种方法,或者至少这个问题将证明你不能。附:谢谢夸奖。
  • @AxelRichter 不同意我的测试:我在单元格中输入:10/03/2015 单元格显示:10/03/2015 公式栏显示:10/03/2015 文本框显示: 3/10/2015 地区:英国 单元格格式:*dd/mm/yyyy
  • 您可以使用 VBA 代码做到这一点。例如,对于链接到单元格 A1 的简单文本框,您可以将其放入 TextboxChange 事件代码中:` With TextBox21 .Value = Format(.Value, "dd-mmm-yyyy") End With`
  • @RonRosenfeld 那时我很兴奋。但是在测试中,我发现当您从该字段中取出时,它实际上会将其更改为错误的日期!所以我输入了 2015 年 3 月 10 日,当我退出该字段时,它变为 2015 年 10 月 3 日。

标签: excel date textbox


【解决方案1】:

或者,(在表单中......)您可以在 Excel 表单中将日、月和年输入分开。

然后使用=date(year(A1),month(A2),day(A3)) 将它们重新组合为有效的日期值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-26
    • 1970-01-01
    • 2021-11-18
    相关资源
    最近更新 更多