Range.Valueはエクセルでの値を、VBAの値に変換変換して返す
その際に型を選択するんだが、元の値がその型に収まらない場合エラーが出る
今に始まった話じゃないし、対策としてRange.Value2ってのも実装されてる