错误类型不匹配

时间:2013-11-22 12:54:45

标签: vb6

为什么我收到此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

3 个答案:

答案 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专门挂钩月/日数字,而不依赖于格式输出。