Impressió de depuració de VBA | Com s'utilitza Debug.Print per analitzar la sortida de codi VBA?

Depuració VBA d'Excel. Impressió

La impressió de depuració és una de les eines útils presentades a l’editor VBA per esbrinar com funciona un programa i ajuda a analitzar els canvis en els valors de les variables creades al programa VBA. Mostra la sortida de la finestra immediata quan executem el programa sense cap error.

Debug.print ofereix els dos avantatges principals sobre l’ús de Msgbox per mostrar la sortida del codi. Elimina la necessitat de fer clic al botó D'acord cada vegada i mostra el registre dels valors de sortida retornats a les finestres immediates. Estalvia molt de temps als usuaris. En aquest article s’explica l’ús d’excel VBA Debug Print amb molts exemples i s’explica com utilitzar-lo, cobrint les coses següents.

Què és VBA Debug Print?

La depuració és un objecte de VBA i s’utilitza amb els dos mètodes anomenats Assert i Print. La impressió és útil per mostrar el missatge i afirma que és útil en l’avaluació de les condicions. A VBA, la sentència debug.print s’utilitza en qualsevol lloc del programa de codificació per mostrar els valors d’una variable o missatges a la finestra immediata. Aquests no necessiten cap confirmació ni confirmació i no mostren cap efecte sobre el codi desenvolupat. És segur i millor utilitzar-lo en el codi per facilitar l'accés a molts usuaris. Són útils per provar o avaluar el codi per confirmar que funciona correctament o no. Impressió de variables, cadenes, números, matriu, valors en fulls Excel i fulls buits i actius.

Com s'utilitza la impressió de depuració VBA d'Excel?

VBA debug.print és la declaració útil per mostrar més nombre de variables alhora a la finestra immediata. És el millor enfocament alternatiu per mostrar el resultat.

Per exemple,

Debug.print recompte, suma, mitjana, desviació estàndard

Com es mostra a l'exemple, totes les variables estan separades per comes. Aquesta sentència és capaç de transferir la sortida a la finestra immediata fins i tot en cas que no s’obri una finestra. No para d'executar el codi com a Msgbox. Aquesta flexibilitat admet un seguiment continu dels canvis en la sortida respecte als canvis en el codi.

El nombre de variables, suma, mitjana i desviació estàndard es mostren en la mateixa línia amb un espai igual entre elles. Si la finestra immediata no s'obre, seguiu els passos següents per veure la sortida.

Passos per obrir la finestra immediata i veure la sortida

  • Premeu Ctrl + G o feu clic al menú "Veure" a l'editor VBA.
  • Trieu l’opció ‘Finestra immediata’.
  • Col·loqueu el cursor a la finestra i torneu a executar el codi.
  • Observeu la sortida a la finestra.

Exemples de depuració Excel VBA.Imprimir

A continuació es mostren els exemples per demostrar l'ús de la impressió de depuració a Excel VBA.

Podeu descarregar aquesta plantilla Excel d'impressió de depuració VBA aquí: plantilla Excel d'impressió de depuració VBA

Exemple 1: visualització dels valors de les variables

Primer, aneu a la pestanya Desenvolupador, feu clic a Macros i creeu una macro per escriure el codi a la VBA i afegir-hi un nom.

Després d'afegir el nom, feu clic a crear. Això obre l'editor VBA.

Desenvolupeu un petit programa com es mostra a la figura.

Codi:

 Sub Variables () Dim X As Integer Dim Y As String Dim Z As Double X = 5 Y = "John" Z = 105.632 Debug.Print X Debug.Print Y Debug.Print Z End Sub 

Com es mostra a la captura de pantalla, es redueixen tres dimensions o variables com X, Y i Z com a enter, cadena i doble, respectivament. Per imprimir aquests valors s’utilitza Debug.print i la sortida es mostrarà a la finestra immediata. Premeu CTRL + G per veure la sortida tal com es mostra a la captura de pantalla.

Executeu aquest codi amb la tecla F5 i premeuCTRL + G per veure la sortida a la finestra immediata.

Aquest programa es pot simplificar separant les declaracions debug.print per una coma.

Codi:

 Sub Variables () Dim X As Integer Dim Y As String Dim Z As Double X = 5 Y = "John" Z = 105.632 Debug.Print X, Y, Z End Sub 

Aquesta sentència de depuració imprimeix la sortida a la mateixa línia que es mostra a la captura de pantalla.

Exemple # 2: depurar la impressió a fitxer

Aquest exemple il·lustra l'ús de la impressió de depuració VBA per mostrar la sortida a un fitxer quan la longitud del text és massa alta.

El programa per imprimir la sortida en un fitxer es desenvolupa com es mostra a la figura.

Codi:

 Sub DebugPrintToFile () Dim s As String Dim num As Integer num = FreeFile () Obriu "D: \ Articles \ Excel \ test.txt" Per a la sortida com a #num s = "Hola, món!" Debug.Print escriu a la finestra immediata Imprimeix #num, s escriu al fitxer Tanca #num End Sub 

En aquest programa, dues variables anomenades S i Num es consideren una cadena i un enter respectivament. La declaració open s’utilitza per crear un fitxer de text amb la prova de noms. Una cadena anomenada "Hello World" es declara a la variable S.

Quan s'executa el codi VBA manualment o mitjançant la tecla F5, la sortida s'escriu a la finestra immediata i el fitxer es mostra a la vegada a la carpeta.

La sortida al fitxer es mostra a la figura esmentada a continuació.

Imprimir la sortida al fitxer és beneficiós quan es presenta un text llarg.

Exemple # 3: mostrar el factorial d'un número a la finestra immediata

Aquest exemple il·lustra l’ús de la sentència debug.print per mostrar el factorial d’un nombre.

Codi:

 Public Sub Fact () Dism. Compte com a enter. Dism. Nombre Com a enter. Dim. Fet com a nombre enter = 5 Fet = 1 Per al recompte = 1 Al número Fact = Fet 

Per determinar el factorial, es consideren tres variables que inclouen el recompte, el nombre i el fet. Per a bucle es pren per repetir la multiplicació del valor de fet amb el recompte per determinar el factorial del nombre.

Aquí, la sentència debug.print s'utilitza fora del bucle "for" per mostrar el valor després de completar el bucle. La sortida es determina com.

Si utilitzem la declaració debug.print dins del bucle "per", el valor de fet es mostra per a cada temps recurrent, tal com es mostra a la figura.

Codi:

 Public Sub Fact () Disminueix el recompte com enter Decompressió com a enter Declareix el fet com nombre enter = 5 Dades = 1 Per al recompte = 1 Al número Fet = Fet * Recompte de depuració. 

Executeu el codi prement la tecla F5 i vegeu la sortida a la finestra immediata. En aquesta situació, hauríem de considerar l’últim valor com el factorial del nombre donat.

Exemple # 4: imprimir el nom complet del llibre de treball actiu

Aquest exemple explica com imprimir el nom del llibre actual a la finestra immediata

El programa es desenvolupa com es mostra a la figura.

Codi:

 Sub Activework () Atenuar el recompte com a llarg Per recompte = 1 Per a Workbooks.count Debug.Print Workbooks (recompte). Nom complet Següent recompte Depuració. Recompte d’impressió Finalitzar sub 

Aquí "compte" és la variable que es pren per comptar el nombre de llibres de treball actius i per mostrar el nom complet del llibre de treball actiu. El nom complet i el nombre de llibres de treball actius es mostren com es mostra a la figura.

El camí del llibre a les unitats es mostra amb precisió mitjançant la declaració VBA debug.print.

Coses que cal recordar

  • El problema principal amb la depuració .print no és cap opció d’ajust de text per a cadenes llargues a la finestra immediata
  • La finestra immediata s'hauria de portar a la part superior per veure la sortida a la interfície d'usuari
  • És impossible embolicar el text llarg que es mostra a la finestra immediata. En aquesta situació, la sortida ha de mostrar-se a un fitxer emmagatzemat a la unitat.