何も問題ありません。私は個人的にこの "機能"が好きです。あなたはむしろエラーが出た場合Rate.Value2
が5による1バリアント配列を与えるため
は、その後、あなたは
Range("H6").Value = Rate.Value2(6, 1) ' .Value2 because .Value(6, 1)
ようなものを使用することができます。またはその代わりに範囲.Value
配列を使用する:あなたのケースRate(6)
に
Dim Rate ' as Variant
Rate = Range("A1:A5").Value ' Variant/Variant(1 To 5, 1 To 1)
Debug.Print Rate(5, 1) ' ok
Debug.Print Rate(6, 1) ' Run-time error '9': Subscript out of range
または
Dim Rate as Variant
Rate = Application.Transpose(Range("A1:A5")) ' Variant/Variant(1 To 5)
Debug.Print Rate(5) ' ok
Debug.Print Rate(6) ' Run-time error '9': Subscript out of range
が
.Offset
に似て
Rate.Cells(6, 1)
の略です。たとえば:
Debug.Print Range("C3:D4")(1, 1).Address ' prints "$C$3"
Debug.Print Range("C3:D4")(-1, -1).Address ' prints "$A$1"
私はレンジでエラーになって考えることができる唯一の方法は、代わりにエリアを使用することです:
Dim Rate As Areas
Set Rate = Range("a1,a2,a3,a4,a5").Areas
Debug.Print Rate(5) ' ok
Debug.Print Rate(6) ' Run-time error '9': Subscript out of range
おかげSlai。しかし、エラーをどのように取得するか明確にすることはできますか?私はあなたが "= Rate.Value2(7)"の意味を分かりません。 – Dionysus17