2016-12-04 24 views
0

私は出力を1セル2にするVBAを書いています。選択したセルより下の範囲を選択するにはどうすればよいですか?

私はその下の3つのセルの最小値を確認し、それ以降のコードでそれを使用する最小セルのアドレスを確認したいと考えています。

例えば: ng2はRange("AA9")である。

AA10(200)、AA11(150)、AA12(300)をチェックするコードが必要です - 値を比較し、3つの最小値を教えてください。この場合

、答えは以下のコードを試してみてくださいRange("AA11")

+0

'Selection.Offset()'を見てください。 –

答えて

1
Function minCellBelow(ByRef rng2 As Range, ByVal count As Long) As Range 
    Dim rng As Range: Set rng = rng2.Offset(1).Resize(count) 
    With Application.WorksheetFunction 
     Set minCellBelow = rng2.Offset(.Match(.Min(rng), rng, 0)) 
    End With 
End Function 
1

する必要があり、説明がコメントとしてコード内にある:

Option Explicit 

Sub SelectSpecial() 

Dim Rng2 As Range, Rng As Range 
Dim MinVal, LRow As Variant 

' modify "Sheet1" to your sheet's name 
With Worksheets("Sheet1") 
    Set Rng2 = .Range("AA9") 

    ' set another range that starts 1 row below, and is 3 rows 
    Set Rng = Rng2.Offset(1, 0).Resize(3, 1) 

    ' find minimum value in Range of cells 
    MinVal = WorksheetFunction.Min(Rng) 

    ' find the row location of the Minimum values using the MATCH function 
    LRow = Application.Match(MinVal, Rng, 0) 

    ' display reult value found, and cell address 
    MsgBox "Minimum Value is " & MinVal & " , located at cell " & .Range("AA" & Rng2.Row + LRow).Address 
End With 

End Sub 
0

あなたは、以下の機能を使用してそれを行うことができます(それを置きますvbaモジュールへ)。 excel = Maxadress(あなたの範囲)

Function Maxadress(rng As Range) As String 
    Maxadress = WorksheetFunction.Index(rng, WorksheetFunction.Match(WorksheetFunction.max(rng), rng, 0)).Address 

End Function 
関連する問題