2017-06-06 132 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' ;-)時有效 –