2017-06-06 137 views
1

我得到了一个bizzare溢出消息与此代码错误,我不明白为什么。 你能帮忙吗?我在另一个vba模块中使用完全相同的代码,它可以工作。VBA:多维阵列初始化溢出错误初始化

Dim tab_base As Variant 
tab_base= Worksheets("Test").Range("A1:AL1492").Value 

感谢,

伊斯梅尔

回答

3

您必须在范围内的一些无效的细胞。我主要怀疑一些格式为Date的单元格的值太大或太小。

为了安全起见并获取与格式无关的数值,请使用建议的.Value2。因此,尝试

tab_base= Worksheets("Test").Range("A1:AL1492").Value2 

那么你得到的数组作为字符串或数字的一切(日期:号码)。您可以稍后将数字转换为日期,但您也可以在之前检查错误。

Dim d As Date 
On Error Resume Next 
d = tab_base(i, j) 
if Err.Number <> 0 Then ' invalid date, this was a cell causing overflow 

PS:检查例如,如果Err.Number = 6,这意味着你真的有个约会溢出(THX垫的)

+1

技术上

例如,一些细胞转换为日期,这样的事情之前,该评论仅在'Err.Number = 6' ;-)时有效 –