Post Destacado

¿Buscas trabajo y no has certificado en Excel? 🤔

Hoy quiero hablarte sobre un tema que puede cambiar tu vida profesional: la certificación oficial de Excel MO-200. Puede que te estés preguntando, ¿por qué debería importarme obtener esta certificación? Pues, sigue leyendo y descubrirás las ventajas que puede ofrecerte. ¿Qué es la Certificación MO-200? La certificación MO-200, también conocida como "Microsoft Office Specialist: Excel Associate (Excel and Excel 2019)", es una credencial oficial otorgada por Microsoft . Este examen valida tus habilidades en Excel, asegurando que eres capaz de manejar eficientemente una amplia gama de tareas dentro de esta poderosa herramienta. Básicamente, todo el mundo agrega en sus CV la frase " Dominio de Excel ", pero casi nadie se preocupa por demostrarlo oficialmente. Esta es tu oportunidad para ser el candidato preferido en tu próxima búsqueda. ¿Por Qué Deberías Considerarla? 1. Mejora tu Currículum:    Tener una certificación oficial en tu currículum te diferencia de otros can

La Instrucción Debug.Print en VBA

 


En más de una ocasión, podríamos requerir en nuestro código de VBA explorar en mayor profundidad el valor de una variable, para comprobar que el código que hemos pensado se ejecuta de acuerdo a nuestras expectativas, o intentar entender dónde y por qué se están produciendo problemas. Este proceso se conoce como "debuggear" (en español: depuración), y no es otra cosa que el proceso de identificar y corregir errores de programación ("bugs"). 

En general, debido a malas costumbres, muchos programadores de VBA mal-utilizan las ventanas con mensajes o MsgBox para mostrar el contenido de variables durante la ejecución del código. También tenemos los puntos de interrupción que, cuando un cierto código repite varias veces una misma línea que nos interesa explorar en mayor profundidad, se vuelven tediosos rápidamente. Ambos métodos si bien en alguna medida pueden cumplir con su objetivo, en general no son óptimos, debido a que ralentizan bastante la ejecución, produciendo un exceso de interacciones innecesarias, y no dejan un buen "registro" de lo que ha ido ocurriendo con el código.

A este fin, se introduce (de manera bastante literal) una instrucción denominada Debug.Print. Esta función permite la depuración de una programación de forma más cómoda, mostrando (o "imprimiendo", del inglés "print") información en la ventana Inmediato de VBA. Simplemente debemos asegurarnos que la ventana Inmediato se encuentre visible, y al anteponer esta sentencia antes de la variable que se desea comprobar, conseguiremos ver todos los valores que toma la variable cada vez que el programa pasa por este comando.

Estas instrucciones se pueden posicionar en forma de "marcadores" en distintos puntos a lo largo del código cuando queremos depurarlo (en general, cada vez que se modifique o acceda al valor de una variable que sea de nuestro interés), y su principal ventaja es que no interactuarán con el resto del código, no modificarán nuestro libro, ni producirán interacciones visibles con el exterior. Simplemente dejarán un discreto registro de la ejecución de nuestro programa en la ventana Inmediato, que luego podremos releer para analizarlo y ver dónde está el error.

Para añadir un marcador al programa es preciso añadir la instrucción Debug.Print seguida del nombre de la variable que se quiere analizar, y asegurarnos que la ventana Inmediato se encuentre visible desde Ver > Ventana Inmediato, o el atajo Ctrl+G directamente desde nuestro editor de VBA:



En los puntos de nuestro código que nos interese realizar una evaluación de lo que está ocurriendo con el valor de nuestras variables, simplemente agregamos la línea Debug.Print

Sub DepurarCodigo()  Dim Num_Fila As Long      For Num_Fila = 10 To 0 Step -1         Debug.Print "Valor de la fila : " & Num_Fila           Debug.Print "Resultado del calculo : " & 10/Num_Fila       

Cells(Num_Fila, 2) = 10/Num_Fila

    Next 

End Sub


Una vez hayamos terminado, si bien esta línea no ocasionará problemas con el resto del programa, puede ser eliminada para mayor limpieza en nuestro código, y no entorpecer la visibilidad en la ventana Inmediato si la necesitamos para otros usos más tarde.