Excel VBA中的长variables错误6

Sub Testing() Dim Ttt As Long Dim a As Variant Dim s As String s = "11:30:05.500" Ttt = (11 * 50 * 10 * 10) 'a = Split(StrConv(s, 64), Chr(0)) 'Ttt = TimeGet(a) End Sub 

我只是想存储一个很大的数字,这个数字还没有那么大。 为什么这会抛出错误运行时错误6?我确定我正在做一些非常愚蠢的事情。

尝试这个:

 Ttt = (11& * 50& * 10& * 10&) 

原因是因为你提供的文字被解释为Integer数值,并且乘法运算是按照操作顺序发生的,所以最终结果对于Integer来说太大了,直到它被赋值并隐含地转换为Long数据types( Tttvariables)。

通过使用& type字符,你告诉编译器你的文字实际上是Long值。