Vba 来自Userform的日期未正确传输
我在Excel 2013中有一个userform,其中一个文本框允许用户在DD/MM/YYYY格式中输入日期,当用户单击Add按钮时,它会将其转移到工作表上的下一个可用行中 我遇到的问题是,如果用户输入的日期是2012年8月1日,即2013年8月1日,那么它将作为2013年8月1日添加到工作表中;如果我输入的日期是2013年8月22日,那么它将正确输入日期-2013年8月22日。如果我将日期作为2013年8月1日输入用户表单,则会将其作为2013年1月8日添加到工作表中 我使用的两行代码是:- 工作表(“数据负债”).Range(“A”和Drow).NumberFormat=“dd/mm/yyyy” 工作表(“数据债”).Range(“A”和Drow).Value=UserForm4.TextBox1.Value 有人能告诉我我做错了什么吗 顺便说一句,我将工作表中的列设置为短日期格式 提前谢谢Vba 来自Userform的日期未正确传输,vba,date,excel,Vba,Date,Excel,我在Excel 2013中有一个userform,其中一个文本框允许用户在DD/MM/YYYY格式中输入日期,当用户单击Add按钮时,它会将其转移到工作表上的下一个可用行中 我遇到的问题是,如果用户输入的日期是2012年8月1日,即2013年8月1日,那么它将作为2013年8月1日添加到工作表中;如果我输入的日期是2013年8月22日,那么它将正确输入日期-2013年8月22日。如果我将日期作为2013年8月1日输入用户表单,则会将其作为2013年1月8日添加到工作表中 我使用的两行代码是:-
Keith将日期作为字符串获取,然后使用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
在文本框中接受日期通常会产生此问题。也许可以解决您的问题?回显sid的注释,我可能会使用3个文本框,甚至可以使用组合框,这样可以更好地控制输入(通过限制允许的值列表),并确保它们始终是数字类型,等等。