我的代码出现了一个bizzare溢出消息错误,我无法理解原因。 能否请你帮忙 ?我在另一个vba模块中使用完全相同的代码并且它可以工作。
Dim tab_base As Variant
tab_base= Worksheets("Test").Range("A1:AL1492").Value
谢谢,
伊斯梅尔
答案 0 :(得分: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
p.s:检查例如Err.Number = 6
,这意味着你真的有一个日期溢出(thx Mat's)