VBA最小值和表格

时间:2018-10-25 08:45:30

标签: vba

我有一张有2张桌子的工作表。我想找到并返回具有最小蛋白质的列1的单元格。 例如,我的代码在第一次运行时将返回Phil,Levy或Sean,Montain。 (然后,我的电子表格会将+1添加到这两者之一中-这已在excel中设置)。等等...

教练名单Protégées 菲尔·利维7 肖恩,蒙泰宁7 维克多·沙特莱斯8

我已经写了一个代码,但不幸的是,它是随机执行的。有什么想法吗?

代码:

Dim Coach As String
Dim ws As Worksheet, t As ListObject, r As Long

    For Each t In MyWorksheet.ListObjects
        Select Case t.Name
            Case "Table1", "Table3", "Table4", "Table6", "Table8", "Table10", "Table12", "Table14", "Table16"
                'do nothing
            Case Else
                'Coach = Application.WorksheetFunction.Min(t.ListColumns(2).Range)--> could use that ?
                For r = 1 To t.DataBodyRange.Rows.Count
                For r = t.DataBodyRange.Rows.Count To 1 Step -1
                    If t.DataBodyRange(r, 2) <= t.DataBodyRange(r + 1, 2) Then
                    Coach = t.DataBodyRange(r , 1)
                    End If
                Next r
        End Select
    Next t

1 个答案:

答案 0 :(得分:0)

我认为您的方法需要一个变量,以便比较每行时找到的最低数字。

                p = 9999
                For r = 1 To t.DataBodyRange.Rows.Count
                    If t.DataBodyRange(r, 2) <= p Then
                        p = t.DataBodyRange(r, 2)
                        Coach = t.DataBodyRange(r, 1)
                    End If
                Next r