VBA:多维阵列初始化溢出错误初始化
问题描述:
我得到了一个bizzare溢出消息与此代码错误,我不明白为什么。 你能帮忙吗?我在另一个vba模块中使用完全相同的代码,它可以工作。VBA:多维阵列初始化溢出错误初始化
Dim tab_base As Variant
tab_base= Worksheets("Test").Range("A1:AL1492").Value
感谢,
伊斯梅尔
答
您必须在范围内的一些无效的细胞。我主要怀疑一些格式为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垫的)
技术上
例如,一些细胞转换为日期,这样的事情之前,该评论仅在'Err.Number = 6' ;-)时有效 –