none
Funcao Buscar em Vetor RRS feed

  • Pergunta

  • Olá!

    Gostaria de saber se é possível passar um vetor Date como parâmetro para uma função que espera Variant.

    Pois esta dando o seguinte erro, "...era esperado matriz ou tipo definido pelo usuário."

    Chamada da função BuscaVetor(VT_Feriado(), Format(now, "dd/mm/yyyy"), False)

    Função:

    Public Function BuscaVetor(Vetor() As Variant, valor As Variant, BiDimensional As Boolean, Optional ColPesq As Integer) As Integer
    Dim Pos_Vetor As Integer
    
        BuscaVetorTeste = -1
        
        If valor = Null Then
            BuscaVetorTeste = -2
            Exit Function
        End If
            
        If BiDimensional = True Then
            For Pos_Vetor = 0 To UBound(Vetor)
                If valor = Vetor(Pos_Vetor, ColPesq) Then
                    BuscaVetorTeste = Pos_Vetor
                    Exit Function
                End If
            Next
        Else
            For Pos_Vetor = 0 To UBound(Vetor)
                If valor = Vetor(Pos_Vetor) Then
                    BuscaVetorTeste = Pos_Vetor
                    Exit Function
                End If
            Next
        End If
    End Function
    Agradeço desde já!

    quarta-feira, 3 de outubro de 2012 01:05

Respostas

  • Sub Exemplo()
        Dim i As Integer
        Dim VT_Feriado() As Date
        
        ReDim VT_Feriado(1 To 5)
        
        i = BuscaVetor(VT_Feriado, Format(Now, "dd/mm/yyyy"), False)
    End Sub
    
    Public Function BuscaVetor(Vetor() As Date, valor As Variant, BiDimensional As Boolean, Optional ColPesq As Integer) As Integer
        Dim Pos_Vetor As Integer
        Dim BuscaVetorTeste As Integer
    
        BuscaVetorTeste = -1
        
        If valor = Null Then
            BuscaVetorTeste = -2
            Exit Function
        End If
            
        If BiDimensional = True Then
            For Pos_Vetor = LBound(Vetor) To UBound(Vetor)
                If valor = Vetor(Pos_Vetor, ColPesq) Then
                    BuscaVetorTeste = Pos_Vetor
                    Exit Function
                End If
            Next
        Else
            For Pos_Vetor = LBound(Vetor) To UBound(Vetor)
                If valor = Vetor(Pos_Vetor) Then
                    BuscaVetorTeste = Pos_Vetor
                    Exit Function
                End If
            Next
        End If
    End Function


    Felipe Costa Gualberto - http://www.ambienteoffice.com.br

    quarta-feira, 3 de outubro de 2012 09:12
    Moderador