プロが教える店舗&オフィスのセキュリティ対策術

いつも大変お世話になっております。
最大値・最小値の求め方 
配列を利用して添付ファイルのように
最大値・最小値の求めたいのですが、
やり方教えて下さい。
よろしくお願いいたします。
以下のコードは
合計と平均です。


Dim i, j As Long
Dim Ans1, Ans2
Dim x, Ax
x = Range("D3:k5").Value
ReDim Ans1(1 To UBound(x), 1 To 1)
ReDim Ax(1 To UBound(x), 1 To 1)
ReDim Ans2(1 To 1, 1 To UBound(x, 2))

For i = LBound(x) To UBound(x)
For j = LBound(x, 2) To UBound(x, 2)
Ans1(i, 1) = Ans1(i, 1) + 1
Next j
Ax(i, 1) = Ans1(i, 1) / UBound(x, 2)
Next i
Range("L3").Resize(UBound(x)) = Ans1
Range("M3").Resize(UBound(x)) = Ax

「最大値・最小値の求め方 配列」の質問画像

A 回答 (1件)

修正しました。

以下のようにしてください。

Dim i, j As Long
Dim Ans1, Ans2
Dim x, Ax
x = Range("D3:k5").Value
ReDim Ans1(1 To UBound(x), 1 To 1)
ReDim Ans2(1 To UBound(x), 1 To 1)

For i = LBound(x) To UBound(x)
Ans1(i, 1) = x(i, 1)
Ans2(i, 1) = x(i, 1)
For j = LBound(x, 2) To UBound(x, 2)
Debug.Print "<", x(i, j), ">"
If x(i, j) > Ans1(i, 1) Then
Ans1(i, 1) = x(i, j)
End If
If x(i, j) < Ans2(i, 1) Then
Ans2(i, 1) = x(i, j)
End If
Next j
Next i
Range("L3").Resize(UBound(x)) = Ans1
Range("M3").Resize(UBound(x)) = Ans2
    • good
    • 0
この回答へのお礼

いつも大変お世話になっております。
簡単にできるようになればいいのですが。
ありがとうございました

お礼日時:2019/10/09 15:42

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!