1
このコードでbizzareオーバーフローメッセージエラーが発生しましたが、その理由を理解できません。 助けてくれますか?私は別のvbaモジュールで全く同じコードを使用しています。VBA:多次元配列配列のオーバーフローエラー
Dim tab_base As Variant
tab_base= Worksheets("Test").Range("A1:AL1492").Value
おかげで、
イスマイル
このコードで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'のときにのみ有効です;-) –