VBA IFERROR

Un código escrito muchas veces da el error y las posibilidades de obtener un error en un error complejo son bastante altas. Al igual que Excel tiene la función IFERROR que se usa cuando hay posibilidades de obtener un error. IFERROR cambia el mensaje de error en otras declaraciones de texto según lo requerido y definido por el usuario. Del mismo modo, VBA IFERROR funciona igual que la función IFERROR de Excel. Cambia el mensaje de error al texto definido por el usuario.

Este error ocurre principalmente cuando realizamos cualquier función matemática o si asignamos datos que están en un formato diferente. IFERROR maneja muchos errores, algunos de ellos son:

# ¡VALOR !, # N / A, # ¡DIV / 0 !, #REF !, # ¡NUM !, # ¡NULO! ¿Y #NAME?

Ejemplo 1

Ahora esta función IFERROR también se puede implementar en VBA. Ahora, para comparar los resultados de Excel con VBA IFERROR, insertaremos una columna donde aplicaremos la instrucción VBA IFERROR como se muestra a continuación.

Puede descargar esta plantilla Excel de VBA IFERROR aquí - Plantilla Excel de VBA IFERROR

Para esto, consideramos los mismos datos e insertamos otra columna donde realizaremos VBA IFERROR. Vaya a la ventana VBA e inserte un nuevo Módulo desde el menú Insertar como se muestra a continuación.

Ahora en un módulo recién abierto, escriba Subcategoría con cualquier nombre. Aquí hemos dado el nombre de la función operativa como se muestra a continuación.

Código:

 Sub VBA_IfError () End Sub 

Ahora, con la ayuda de ActiveCell, seleccionaremos la primera celda de referencia y luego utilizaremos directamente la Fórmula IFERROR con la celda de referencia (RC) -2 dividida por -1 números de celda. Lo que significa que estamos dividiendo la celda A por la celda B en el primer argumento. Y en el segundo argumento escriba cualquier declaración que queramos en lugar de error. Aquí usaremos el mismo estado que hemos visto anteriormente, es decir, "Sin clase de producto".

Código:

 Sub VBA_IfError () ActiveCell.FormulaR1C1 = "= IFERROR (RC (-2) / RC (-1), " "No Product Class" ")" End Sub 

Ahora seleccione la celda de rango que sería nuestro denominador. Aquí hemos seleccionado la celda C2.

Código:

 Sub VBA_IfError () ActiveCell.FormulaR1C1 = "= IFERROR (RC (-2) / RC (-1), " "No Product Class" ")" Range ("C2"). Seleccione End Sub 

Ahora para arrastrar la fórmula a las celdas a continuación, donde debemos aplicar IFERROR hasta que la tabla tenga los valores.

Código:

 Sub VBA_IfError () ActiveCell.FormulaR1C1 = "= IFERROR (RC (-2) / RC (-1), " "No Product Class" ")" Range ("C2"). Seleccione Selection.End (xlDown). Seleccione End Sub 

Ahora para llegar a la última celda de la columna con la ayuda del comando Rango, donde debemos arrastrar la fórmula IFERROR. Aquí nuestro límite termina en la celda D6.

Código:

 Sub VBA_IfError () ActiveCell.FormulaR1C1 = "= IFERROR (RC (-2) / RC (-1), " "No Product Class" ")" Range ("C2"). Seleccione Selection.End (xlDown) .Seleccione Range ("D6"). Seleccione End Sub 

Ahora, para arrastrar el IFERROR aplicado hacia abajo a todas las celdas aplicables, seleccione el rango de la celda Fin (o Última) a Arriba a la celda de fórmula aplicada mediante el comando Fin (xlUp) en Rango .

Código:

 Sub VBA_IfError () ActiveCell.FormulaR1C1 = "= IFERROR (RC (-2) / RC (-1), " "No Product Class" ")" Range ("C2"). Seleccione Selection.End (xlDown) .Seleccione Range ("D6"). Seleccione Rango (Selección, Selección. Fin (xlUp)). Seleccione Fin Sub 

Al hacer Ctrl + D para arrastrar los valores de las celdas hacia arriba a todas las celdas seleccionadas en Excel, aquí en VBA, Selection.FillDown se usa para llenar los mismos valores de celdas en todas las celdas seleccionadas.

Código:

 Sub VBA_IfError () ActiveCell.FormulaR1C1 = "= IFERROR (RC (-2) / RC (-1), " "No Product Class" ")" Range ("C2"). Seleccione Selection.End (xlDown) .Seleccione Range ("D6"). Seleccione Rango (Selección, Selección. Fin (xlUp)). Seleccione Selección. Rellenar Finalizar Sub 

Esto completa la codificación de VBA IFERROR. Ahora ejecute el código completo haciendo clic en el botón de reproducción como se muestra en la siguiente captura de pantalla.

Como podemos ver arriba, en la columna D a partir de la celda 2 a la 6 obtuvimos nuestros resultados.

Hay otro formato y forma de aplicar IFERROR en VBA. Para esto, consideraremos otro conjunto de datos como se muestra a continuación. A continuación tenemos los datos de ventas de algunos productos en la columna A y la calidad vendida en la columna B. Y necesitamos mapear estos datos en la celda F2 con referencia al tipo de producto Laptop . Ahora los datos en la primera tabla tienen # N / A en la celda B3 con la cantidad de Laptop agotada, lo que significa que los datos de origen tienen un error. Y si buscamos los datos de la primera tabla en la celda F2, obtendremos el mismo # N / A aquí.

Para esto, abra un nuevo módulo en VBA y escriba Subcategoría con el nombre de una función realizada.

Código:

 Sub VBA_IfError2 () End Sub 

Seleccione el rango donde necesitamos ver la salida o active directamente esa celda mediante ActiveCell seguido de la línea de comando de punto (.) Como se muestra a continuación.

Código:

Ahora seleccione FormulaR1C1 de la lista que se utiliza para insertar cualquier función de Excel.

Ahora use la misma fórmula que se usa en la función de Excel en VBA también.

Código:

 Sub VBA_IfError2 () ActiveCell.FormulaR1C1 = "= IFERROR (VLOOKUP (RC (-1), R (-1) C (-5): R (3) C (-4), 2, 0), " "Error en Datos "") "Fin Sub 

Ahora seleccione la celda donde necesitamos ver la salida en Rango. Aquí hemos seleccionado la celda F3.

Código:

 Sub VBA_IfError2 () ActiveCell.FormulaR1C1 = "= IFERROR (VLOOKUP (RC (-1), R (-1) C (-5): R (3) C (-4), 2, 0), " "Error en Data "") "Range (" B8 "). Seleccione End Sub 

Ahora compile y ejecute el código completo con la tecla F5 o manualmente y vea el resultado como se muestra a continuación.

Como podemos ver en la captura de pantalla anterior, la salida del tipo de producto Laptop, de la primera tabla # N / A es con el texto de error " Error en los datos " como se define en el código VBA.

Ventajas de la función VBA IFERROR

  • Lleva poco tiempo aplicar la función IFERROR a través de VBA.
  • El resultado de la función de inserción de Excel y la codificación VBA IFERROR, ambos son iguales.
  • Podemos formatear o pegar también la fórmula aplicada especial para evitar cualquier problema adicional.

Contras de la función VBA IFERROR

  • IFERROR con este método, hacer referencia al rango de la celda seleccionada puede verse afectado ya que la tabla tiene celdas limitadas.

Cosas para recordar

  • Podemos grabar la macro y modificar la codificación registrada según nuestras necesidades.
  • Recuerde siempre guardar el archivo como Excel habilitado para macros, de modo que podamos usar la macro aplicada o creada varias veces sin ningún problema.
  • Asegúrese de recordar compilar el código completo antes de finalizar la función de comando. Con esto, podemos evitar o corregir cualquier error incurrido.
  • Puede aplicar el código creado en un botón o pestaña y usarlo con un solo clic. Esta es la forma más rápida de ejecutar el código.
  • La mejor manera de evitar cualquier cambio después de ejecutar el código es pegar las celdas completas especiales para que no haya ninguna fórmula en la celda.

Artículos recomendados

Esta ha sido una guía para la función Excel VBA IFERROR. Aquí discutimos cómo usar la función IFERROR en VBA junto con algunos ejemplos prácticos y una plantilla de Excel descargable. También puede consultar nuestros otros artículos sugeridos:

  1. Matrices de VBA en Excel
  2. Guía para el formato de número de VBA
  3. Guía para encontrar VBA
  4. ¿Cómo usar VBA Do While Loop?

Categoría: