none
Função Vlookup não retorna resultado para numero. RRS feed

  • Pergunta

  • Fiz um código abaixo, porém ele só funciona para texto, se o campo estiver só numero ele não encontra o valor.

    Private Sub BtConsult_Click()
     On Error Resume Next
         'observe que usamos a WorksheetFuncionVlookup para localização do código na folha de planilha
        Dim TxtNf As Integer
        TxtRec = WorksheetFunction.VLookup(TxtNf, Range("$o:$BI"), 44, False)
        TxtForma = WorksheetFunction.VLookup(TxtNf, Range("$o:$BI"), 45, False)
                  End Sub

    sexta-feira, 13 de dezembro de 2013 17:51

Respostas

  • Ao inserir um código no fórum, utilize blocos de código. Para utilizar essa ferramenta, clique no botão cuja legenda é “Inserir bloco de código” na barra do editor de mensagens do fórum. Uma janela aparecerá onde você deverá colar seu código cru na caixa de texto à esquerda. Então, selecione a opção Vb.Net na caixa de combinação que você verá em cima à esquerda e depois clique no botão Inserir.

    ---

    Sobre sua dúvida, experimente trocar:

    TxtRec = WorksheetFunction.VLookup(TxtNf, Range("$o:$BI"), 44, False)

    por:

    If IsNumeric(TxtRec) = True Then
      TxtRec = WorksheetFunction.IfError(WorksheetFunction.VLookup(CStr(TxtNf), Range("$o:$BI"), 44, False) _
      , WorksheetFunction.VLookup((TxtNf + 0), Range("$o:$BI"), 44, False))
    Else
      TxtRec = WorksheetFunction.VLookup(CStr(TxtNf), Range("$o:$BI"), 44, False)
    End If


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

    sexta-feira, 13 de dezembro de 2013 20:07
    Moderador