我寫了一個VBA,它給了我1個cell-rng2的輸出。如何選擇選定單元格下方的範圍?
我希望能夠檢查它下面的3個單元格的最小值,並查看最小單元格的地址以在下一代碼中使用它。
例如: 第2級是Range("AA9")
。
我想要檢查AA10(200),AA11(150),AA12(300)的代碼 - 比較這些值並告訴我哪個是三者中的最小值。
在這種情況下,答案應該是Range("AA11")
我寫了一個VBA,它給了我1個cell-rng2的輸出。如何選擇選定單元格下方的範圍?
我希望能夠檢查它下面的3個單元格的最小值,並查看最小單元格的地址以在下一代碼中使用它。
例如: 第2級是Range("AA9")
。
我想要檢查AA10(200),AA11(150),AA12(300)的代碼 - 比較這些值並告訴我哪個是三者中的最小值。
在這種情況下,答案應該是Range("AA11")
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
嘗試下面的代碼,解釋是代碼的註釋裏:
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
您可以使用下面的功能做到這一點(把它到vba模塊)。然後輸入excel = Maxadress(你的範圍)
Function Maxadress(rng As Range) As String
Maxadress = WorksheetFunction.Index(rng, WorksheetFunction.Match(WorksheetFunction.max(rng), rng, 0)).Address
End Function
查看'Selection.Offset()' –