数据源
aa(1)=array( 420,0,0 )
aa(2)=array( 0,297,0 )
aa(3)=array( 0,0,0 )
aa(4)=array( 851,0,0 )
aa(5)=array( 851,297,0 )
aa(6)=array( 1271,0,0 )
aa(7)=array( 1271,297,0 )
求aa的最大值1271
或aa(ii)(0)的最大值1271
或aa(ii)(1)的最大值297
谢谢

解决方案 »

  1.   

    可以嵌套循环
    dim intH as integer
    dim intL as integer
    dim lngMax as long 
    lngMax=-1
    for intL=1 to 7
        for intH=0 to 2
            if aa(intH,intL)>lngMax then lngMax=aa(intH,intL)
        next intH
    next intL 
    debug.print lngMax
      

  2.   

    Private Sub Command5_Click()
        Dim i As Long
        Dim a As Integer, b As Integer
        For i = 0 To UBound(aa)
            If aa(ii)(0) > a Then
                a = aa(ii + 1)(0)
            End If
        Next
        Debug.Print a
        
        For i = 0 To UBound(aa)
            If aa(ii)(1) > b Then
                b = aa(ii + 1)(1)
            End If
        Next
        Debug.Print b
    End Sub还要第3个元素,同样.
      

  3.   

    Private Sub Command5_Click()
        Dim i As Long
        Dim a As Integer, b As Integer
        For i = 0 To UBound(aa)
            If aa(ii)(0) > a Then
                a = aa(ii)(0)
            End If
        Next
        Debug.Print a
        
        For i = 0 To UBound(aa)
            If aa(ii)(1) > b Then
                b = aa(ii)(1)
            End If
        Next
        Debug.Print b
    End Sub
      

  4.   

    如果全是负值的情况也应该考虑吧?Option ExplicitPrivate Function ArrayMaxValue(arr As Variant, Idx As Long) As Double
        Dim i As Long
        Dim Index As Long
        
        Index = LBound(arr)
        For i = LBound(arr) + 1 To UBound(arr)
            If arr(i)(Idx) > arr(Index)(Idx) Then Index = i
        Next
        ArrayMaxValue = arr(Index)(Idx)
        
    End FunctionPrivate Sub Command1_Click()
        
        Dim aa(1 To 7)
        Dim i As Long
        
        aa(1) = Array(420, 0, 0)
        aa(2) = Array(0, 297, 0)
        aa(3) = Array(0, 0, 0)
        aa(4) = Array(851, 0, 0)
        aa(5) = Array(851, 297, 0)
        aa(6) = Array(1271, 0, 0)
        aa(7) = Array(1271, 297, 0)    For i = 0 To 2
            Debug.Print ArrayMaxValue(aa, i)  '再在结果中找最大值就是整个数组的最大值..略
        Next
        
    End Sub