请帮助我以下方案
我需要透彻一个范围并找到最小值。
我能够完成以下代码;但是,当有多个最小值时,遵循代码始终给出最小值列号。即使不满足条件,它也不会移至下一个最小值列。
这是我试图应用的班级
MyOrder = 1
Do Until wksSkill.Cells(MyRow, MyColNum).Value <> "Exclude"
MyColNum = Application.Evaluate("=CELL(""col"", INDEX(" & MyColRange.Address(0, 0) & ", MATCH(SMALL(" & MyColRange.Address(0, 0) & ", " & MyOrder & " ), " & MyColRange.Address(0, 0) & ", 0)))")
MyOrder = MyOrder + 1
Loop
第一个" mycolnum"值从另一个if语句传递,然后将其输出。它起作用,直到该范围具有最低值。
请为我提供任何其他替代方案
好的,所以我可以提出的是在范围内找到最小值,然后在该范围内循环循环,并检查此最小值是否在此处出现,并且值发生在MyRow
中。我的代码中有一些示例值:
Sub mac()
Dim minVal As Double
Dim MyColRange As Range, rng As Range
Dim wksSkill As Worksheet
MyRow = 6
Set wksSkill = Sheets("Arkusz1")
Set MyColRange = wksSkill.Range("A1:E5")
minVal = Application.WorksheetFunction.Min(MyColRange)
For Each rng In MyColRange.Columns
If Not IsError(Application.Match(minVal, rng, 0)) Then
If wksSkill.Cells(MyRow, rng.Column) = "Exclude" Then
MsgBox "Column " & rng.Column
End If
End If
Next rng
End Sub