为什么我收到此Type Mismatch
错误?
代码:
Dim data as Date
data = CDate(Format(31, "00") & "/" & Format("1/9/2013", "mm/yyyy"))
当我尝试使用弦乐时,它当然是完美的。
Obs:如果我使用类似于28的different day than 31
作为例子,它会起作用...但为什么会出现此错误only with the day 31
。
答案 0 :(得分:3)
看起来你正试图获得本月的最后一天。如果是这种情况,试试这个......
Dim data As Date
Dim OriginalDate As Date
OriginalDate = DateSerial(2013, 12, 20)
data = DateSerial(Year(OriginalDate), Month(OriginalDate) + 1, 0)
此代码基本上是下个月的第一天,然后减去一天。使用DateSerial函数的好处是你可以给它“无效”值,例如,如果你使用Year = 2013和Month = 13,你将获得2014年1月。
答案 1 :(得分:2)
我找到了答案,这是愚蠢的 - .-“Month 9 = Agost = 30 days and not 31
......我现在感觉很愚蠢; x
答案 2 :(得分:2)
您必须注意日期,因为根据您的计算机所在的区域(控制面板/区域和语言),有时您的Format("1/9/2013", "mm/yyyy"))
日期可以被解释为September 1, 2013
或{{1 }}
如果可以,请使用January 9, 2013
专门挂钩月/日数字,而不依赖于格式输出。