VBA-foutopsporingsafdruk - Hoe Debug.Print te gebruiken om VBA-code-uitvoer te analyseren?

Inhoudsopgave

Excel VBA Debug.Print

Debug Print is een van de handige tools die in de VBA-editor worden gepresenteerd om erachter te komen hoe een programma werkt, en het helpt bij het analyseren van de veranderingen in de waarden van variabelen die in het VBA-programma zijn gemaakt. Het toont de uitvoer van het promptvenster wanneer we het programma zonder bugs uitvoeren.

Debug.print biedt de twee belangrijkste voordelen ten opzichte van het gebruik van Msgbox om de uitvoer van de code weer te geven. Het elimineert de noodzaak om elke keer op de OK-knop te klikken en toont het logboek van geretourneerde uitvoerwaarden aan de onmiddellijke vensters. Het bespaart gebruikers veel tijd. In dit artikel wordt het gebruik van Excel VBA Debug Print uitgelegd met veel voorbeelden en uitleg over het gebruik ervan, waarbij de volgende zaken worden behandeld.

Wat is VBA Debug Print?

Debug is een object in VBA en wordt gebruikt met de twee methoden genaamd Assert en Print. De afdruk is nuttige in-display-berichten en is nuttig bij de evaluatie van de omstandigheden. Foutopsporing in VBA. De printinstructie wordt overal in het coderingsprogramma gebruikt om de waarden van een variabele of berichten in het onmiddellijke venster weer te geven. Deze hebben geen bevestiging of bevestiging nodig en hebben geen effect op de ontwikkelde code. Het is veilig en het beste om in de code te gebruiken in de situatie om de toegang voor veel gebruikers te vergemakkelijken. Deze zijn alleen nuttig bij het testen of evalueren van de code om te bevestigen dat deze correct werkt of niet. Het drukt de variabelen, tekenreeksen, getallen, array, waarden in Excel-bladen en lege en actieve bladen af.

Hoe Excel VBA Debug Print te gebruiken?

VBA debug.print is de verklaring die nuttig is bij het weergeven van meer variabelen tegelijk in het onmiddellijke venster. Het is de beste en alternatieve benadering om de output te tonen.

Bijvoorbeeld,

Debug.print count, som, gemiddelde, standaarddeviatie

Zoals in het voorbeeld wordt getoond, worden alle variabelen gescheiden door komma's. Deze instructie kan de uitvoer overbrengen naar het onmiddellijke venster, zelfs als er geen venster wordt geopend. Het stopt niet met het uitvoeren van de code zoals in Msgbox. Deze flexibiliteit ondersteunt een continue monitoring van de wijzigingen in de output met betrekking tot wijzigingen in de code.

De variabelen tellen, som, gemiddelde en standaarddeviatie worden op dezelfde regel weergegeven met gelijke ruimte ertussen. Als Direct venster niet wordt geopend, volgt u de volgende stappen om de uitvoer te zien.

Stappen om het onmiddellijke venster te openen en de uitvoer te zien

  • Druk op Ctrl + G of klik op het menu 'Beeld' in de VBA-editor.
  • Kies de optie 'Direct venster'.
  • Plaats de cursor in het venster en voer de code opnieuw uit.
  • Bekijk de uitvoer in het venster.

Voorbeelden van Excel VBA Debug.Print

Hieronder volgen de voorbeelden om het gebruik van foutopsporingsafdruk in Excel VBA te demonstreren.

Voorbeeld # 1 - De waarden van de variabelen weergeven

Ga eerst naar het tabblad Ontwikkelaar, klik op Macro's en maak een macro om de code in de VBA te schrijven en er een naam aan toe te voegen.

Nadat u een naam heeft toegevoegd, klikt u op aanmaken. Dit opent de VBA-editor.

Ontwikkel een klein programma, zoals weergegeven in de afbeelding.

Code:

Subvariabelen () 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

Zoals te zien is in de schermafbeelding, worden drie dimensies of variabelen verkleind als X, Y en Z als respectievelijk een geheel getal, een string en een Double. Om deze waarden af ​​te drukken, wordt Debug.print gebruikt, en de uitvoer wordt weergegeven in het promptvenster. Druk op CTRL + G om het resultaat te zien, zoals weergegeven in de schermafbeelding.

Voer deze code uit met de F5-toets en druk op CTRL + G om de uitvoer in Direct venster te zien.

Dit programma kan worden vereenvoudigd door de debug-print-instructies te scheiden door een komma.

Code:

Subvariabelen () 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

Deze foutopsporingsinstructie drukt de uitvoer op dezelfde regel af, zoals weergegeven in de schermafbeelding.

Voorbeeld # 2 - Foutopsporing afdrukken naar bestand

Dit voorbeeld illustreert het gebruik van VBA-foutopsporingsafdruk om uitvoer naar een bestand weer te geven wanneer de lengte van de tekst te hoog is.

Het programma om de uitvoer op een bestand af te drukken, is ontwikkeld, zoals weergegeven in de afbeelding.

Code:

Sub DebugPrintToFile () Dim s As String Dim num As Integer num = FreeFile () Open "D: Articles Excel test.txt" voor uitvoer als #num s = "Hallo wereld!" Debug.Print s 'schrijven naar het directe venster Print #num, s' schrijf uitvoer naar bestand Sluiten #num End Sub

In dit programma worden twee variabelen genaamd S en Num beschouwd als string en integer. De open instructie wordt gebruikt om een ​​tekstbestand te maken met de naam test. Een kolom met de naam "Hallo wereld" wordt gedeclareerd in de variabele S.

Wanneer u de VBA-code handmatig uitvoert of de F5-toets gebruikt, wordt de uitvoer naar het directe venster geschreven en wordt het bestand per keer in de map weergegeven.

De uitvoer naar het bestand wordt weergegeven in de onderstaande afbeelding.

Het afdrukken van uitvoer naar een bestand is gunstig wanneer lange tekst wordt gepresenteerd.

Voorbeeld # 3 - De faculteit van een getal weergeven in het onmiddellijke venster

Dit voorbeeld illustreert het gebruik van de debug-a print-instructie om de faculteit van een getal weer te geven.

Code:

Public Sub Fact () Dim Count As Integer Dim number As Integer Dim Fact As Integer getal = 5 Fact = 1 For Count = 1 Tot nummer Fact = Fact * Count Volgende telling Debug.Print Fact End Sub

Om de faculteit te bepalen, worden drie variabelen in aanmerking genomen, waaronder het aantal, het aantal en het feit. De For-lus wordt gebruikt om de vermenigvuldiging van feit-waarde met count te herhalen om de faculteit van het getal te bepalen.

Hier, debuggen. De printinstructie wordt buiten de "for" -lus gebruikt om de waarde weer te geven na het voltooien van de cirkel. De output wordt bepaald.

If we use debug. Print statement inside the “for” loop, the fact-value is displayed for every recurring time, as shown in the figure.

Code:

Public Sub Fact() Dim Count As Integer Dim number As Integer Dim Fact As Integer number = 5 Fact = 1 For Count = 1 To number Fact = Fact * Count Debug.Print Fact Next Count End Sub

Run the code by pressing the F5 key and see the output in the immediate window. In this situation, we should consider the last value as the factorial of the given number.

Example #4 - Printing the Full name of the Active Workbook

This example explains how to print the current workbook name into the prompt window.

The program is developed, as shown in the figure.

Code:

Sub Activework() Dim count As Long For count = 1 To Workbooks.count Debug.Print Workbooks(count).FullName Next count Debug.Print count End Sub

Hier is 'count' de variabele die wordt gebruikt om het aantal actieve werkmappen te tellen en om de volledige naam van de actieve werkmap weer te geven. De volledige naam en het aantal actieve werkmappen worden weergegeven, zoals weergegeven in de afbeelding.

Het pad van de werkmap in de schijven wordt nauwkeurig weergegeven met behulp van de VBA-foutopsporingsinstructie.

Dingen om te onthouden

  • Het belangrijkste probleem met debug .print is dat er geen tekstomloopoptie is voor lange strings in het directe venster
  • Het onmiddellijke venster moet naar boven worden gebracht om de uitvoer in de gebruikersinterface te zien
  • Het is onmogelijk om de lange tekst die in het onmiddellijke venster wordt weergegeven, te laten omlopen. In deze situatie moet het resultaat worden weergegeven in een bestand dat op de schijf is opgeslagen.

Interessante artikelen...