Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

661
Visualizações
VBA: ¿Cómo escribo una declaración If usando un método verdadero/falso y el código VLookup?

Me costó redactar el título de la pregunta, lo siento. Creé un formulario VBA. En linebx combo bx tengo el siguiente código, que rellena previamente los cuadros de texto PilotBx y TailBx .

Mi problema es que cuando linebx se completa con un valor que no está en ese menú desplegable de linebx (no en el rango VLookup), envía un mensaje de error

"Error de tiempo de ejecución '1004': no se puede obtener la propiedad VLookup de la clase worksheetFunction"

Sé lo que esto significa, pero no estoy seguro de cómo evitarlo.

Necesito el código para completar previamente los cuadros de texto PilotBx y TailBx , si LineBx coincide, el menú desplegable (rango VLookup) y si no es así, lo necesito para aceptar el número de LineBx ingresado y dejar los cuadros de texto PilotBx y TailBx en blanco.

Por favor, hágamelo saber si tiene alguna pregunta o detalles que pueda dar para ayudar. ¡Gracias de antemano por cualquier ayuda!

Aquí hay una imagen para el formulario que creé:

ingrese la descripción de la imagen aquí

 Dim z As Double Dim h As Double Dim k As String z = LineBx.Value h = Application.WorksheetFunction.VLookup(LineBx.Value, Sheets("StepBrief").Range("A2:E43"), 1, False) If h = z Then k = True Else k = False End If If k = True Then TailBx.Text = Application.WorksheetFunction.VLookup(z, Sheets("StepBrief").Range("A2:E43"), 3, False) PilotBx.Text = Application.WorksheetFunction.VLookup(z, Sheets("StepBrief").Range("A2:E43"), 2, False) Else TailBx.Value = "" PilotBx.Value = "" End If
about 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Puedes ir con:

 Dim h As Double Dim k As String z = LineBx.Value h = -1 on error resume next h = Application.WorksheetFunction.VLookup(LineBx.Value, Sheets("StepBrief").Range("A2:E43"), 1, False) on error goto 0

Ejecuta su búsqueda, no genera un error cuando no se encuentra la búsqueda. h será -1 lo que no será igual a z. Puede usar cualquier valor para establecer h siempre que no sea igual a z, está bien.

about 4 years ago · Santiago Trujillo Relatório

0

Suprimí el mensaje de error agregando On Error Resume Next en la parte superior y "Borrado" PilotBx y TailBx . Sentí que era una forma económica de evitarlo, pero funcionó.

 z = LineBx.Value On Error Resume Next TailBx.Value = "" PilotBx.Value = "" TailBx.Text = Application.WorksheetFunction.VLookup(z, Sheets("StepBrief").Range("A2:E43"), 3, False) PilotBx.Text = Application.WorksheetFunction.VLookup(z, Sheets("StepBrief").Range("A2:E43"), 2, False)
about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda