1

我在 Excel 2013 中有一个用户表单,其中一个文本框允许用户在澳大利亚格式 DD/MM/YYYY 中输入日期,当用户单击“添加”按钮时,它会将其传输到工作表上的下一个可用行。

我遇到的问题是,如果用户输入 2012 年 8 月 1 日 01/08/2013 的日期,它会将其添加到工作表中作为 2013 年 8 月 1 日,如果我输入 2013 年 8 月 22 日的日期,它正确输入 - 2013 年 8 月 22 日。如果我在用户表单上将日期输入为 08/01/2013,它会将其添加为工作表上的 01/08/2013。

我使用的两行代码是:- Worksheets("Data_Debt").Range("A" & Drow).NumberFormat = "dd/mm/yyyy" Worksheets("Data_Debt").Range("A" & Drow ).Value = UserForm4.TextBox1.Value

谁能告诉我我做错了什么。

顺便提一句。我将工作表中的列设置为 ShortDate 格式。

提前致谢

基思

4

1 回答 1

0

将日期作为字符串获取,然后使用 DateSerial() 函数:

Sub DepositDate()
    Dim sD As String, D As Date
    sD = Application.InputBox(Prompt:="Please enter date as dd/mm/yyyy", Type:=2)
    ary = Split(sD, "/")
    Range("A1").Value = DateSerial(ary(2), ary(1), ary(0))
    Range("A1").NumberFormat = "dd/mm/yyyy"
End Sub
于 2013-10-24T12:27:11.147 回答