• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Evaluaciones
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

483
Vistas
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 3 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

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 3 years ago · Santiago Trujillo Denunciar

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 3 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda