Excel VBA根据最小范围的最大范围找到范围内的单元格地址



请帮助我以下方案

我需要透彻一个范围并找到最小值。

我能够完成以下代码;但是,当有多个最小值时,遵循代码始终给出最小值列号。即使不满足条件,它也不会移至下一个最小值列。

这是我试图应用的班级

        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

最新更新