用户表单 电子表格中的日期未以正确的格式显示



我有一个用户窗体,其中包含一个名为"DateBox"的文本框。我有以下代码:

Private Sub UserForm_Initialize()
    DateBox.Value = Format(Date, "d/m/yy")

在表单提交时,我有以下代码来更新 Sheet1 的第一个空单元格

日期 根据表单。
   Cells(emptyRow, 1).Value = DateBox.Value 

但是,电子表格显示的不是 d/m/yy,而是 m/d/yy。我做了一些搜索,并了解到这与区域设置有关。我不确定更改设置对我是否有帮助,因为此表单将被可能具有不同设置的不同人群使用。

我想知道是否有办法对日期进行硬编码以所需的格式显示?

VBA 以 US-EN 为中心,当涉及到日期时,它希望在尝试将字符串转换为日期时假设MM/DD/YYYY

首先,我们要通过解析来自文本框的字符串来强制日期:

Cells(emptyRow, 1).Value = DateSerial(Split(DateBox.Value,"/")(2),Split(DateBox.Value,"/")(1),Split(DateBox.Value,"/")(0))

然后在解析日期后格式化单元格:

Cells(emptyRow, 1).NumberFormat = "d/m/yy"

或者考虑对日期框中的日期dd mmm, yyyy使用更可接受的格式。 这使得它不那么模棱两可。

感谢克里斯·尼尔森的帮助。

最新更新