我尝试将日期变量格式设置为"mmm-yy,"
,但是当日期为2016时,格式化后,日期会更改为2015.这是我的代码:
(结果是输入框的字符串结果,该框请求用户以mmm-yy
形式输入日期,并且在此代码之前有一个测试,以确保作为第四个字符有一个hypen 。
其他验证测试发生在此代码之后,因为我发现必须将字符串格式化为日期才能使测试起作用。)
result2 = result
result2 = Format(result2, "mmm-yy")
有什么建议吗?
答案 0 :(得分:0)
如果输入框产生的值将设置为等于具有日期类型的变量的值,则让用户在程序理解时输入日期(例如mm / dd / yyyy)。
如果由于某种原因,用户必须以“mmm-yy”格式输入日期,请将输入设置为等于字符串变量的值,然后使用[Month *] = Left解析变量([result] ,3)和[年] =“20”&右([结果],2)。然后,您必须构建日期,以便可以将其设置为类型为date的新变量以放入Format函数。
*当然,您必须有一些关键词将“Jan”,“Feb”,“Mar”等翻译成值01,02,03等。
以下为我正确测试:
Public Sub UserDateEntry()
Dim strUserEntry As String
Dim intMonth As Integer, intYear As Integer
strUserEntry = InputBox("Enter month & year in ""mmm-yy"" format.", "Date Entry", "Sep-16")
intMonth = Month(DateValue("01 " & Left(strUserEntry, 3) & " 2012"))
intYear = 20 & Right(strUserEntry, 2)
Application.Range("DateLoc").Value = Format(intMonth & " 01 " & intYear, "mm/dd/yyyy")
End Sub