Userform的日期未正确传输

时间:2013-10-24 12:10:22

标签: excel vba date excel-vba

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

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

我使用的两行代码是: - 工作表(“Data_Debt”)。范围(“A”和Drow).NumberFormat =“dd / mm / yyyy” 工作表(“Data_Debt”)。范围(“A”和Drow).Value = UserForm4.TextBox1.Value

任何人都可以告诉我我做错了什么。

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

提前致谢

基思

1 个答案:

答案 0 :(得分: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