配列を理解しようとしていますが、コンセプトの周りを頭で覆うだけのことはできません。私は、次のデータセットを有する:VBA配列:MsgBoxの範囲、オフセット値、出力値の最小値を調べる
を私はそれが配列に値を供給した後、最小値を出力する場合、列Bの値がゼロより大きいことを確認するために、次のコードを書いメッセージボックスにマクロがある場合ので、私は、可変にアレイの上端を必要
- :
Sub MinFunc() Dim ValLng(1 To 5) As Long, x As Long x = 3 For i = 1 To 5 If Cells(x, 2).Value > 0 Then ValLng(i) = Cells(x, 1).Value Cells(x, 2).Value = Cells(x, 2).Value - 1 x = x + 1 End If Next i MsgBox (Application.WorksheetFunction.Min(ValLng)) End Sub
今はコードを持つ2つの問題がありますいくつかの点で十分頻繁に実行すると、配列の上端は4、次に3などとなります。
- 最小値そのものを出力するのではなく、最小値に関連付けられたC列の値を出力したいと思います。私はメッセージボックスの値をオフセットしようとしましたが、成功しませんでした。
ポイント1とポイント2の達成方法を教えてください。
ありがとうございました!
配列は、初めにサイズを定義したデータ構造です。より大きな配列が必要な場合は、新しいメモリを配置する必要があるため、新しい配列を作成する必要があります。 VBAでは、これを達成するために 'Redim'ステートメントを使用することができます。 2番目の質問では、 'Range.Offset'プロパティを見てください。 – dee
よろしくお願いします。 –