|
こんなのでも?
Option Explicit
Public Sub Sample()
Dim i As Long
Dim lngRows As Long
Dim vntData As Variant
Dim vntMax As Variant
Dim strProm As String
With ActiveSheet.Cells(1, "A")
'データ行数を取得
lngRows = .Offset(Rows.Count - .Row) _
.End(xlUp).Row - .Row + 1
'データが無い場合
If lngRows <= 1 And .Value = "" Then
strProm = "データが有りません"
GoTo Wayout
End If
'データを配列に取得
vntData = .Resize(lngRows + 1).Value
End With
For i = 1 To lngRows
'値が1000以上、2000以下なら
If 1000 <= Val(vntData(i, 1)) _
And Val(vntData(i, 1)) <= 2000 Then
'保存した値より、データが大きいなら
If vntMax < Val(vntData(i, 1)) Then
'データを保存
vntMax = Val(vntData(i, 1))
End If
End If
Next i
If vntMax = Empty Then
strProm = "該当データが有りません"
Else
strProm = "1000以上、2000以下の最大値は、" & vntMax & "です"
End If
Wayout:
MsgBox strProm, vbInformation
End Sub
|
|