VBA调试打印|如何使用Debug.Print分析VBA代码输出?

Excel VBA调试打印

调试打印是VBA编辑器中提供的有用的工具之一,它可以弄清楚程序的工作方式,并有助于分析在VBA程序中创建的变量值的变化。它显示了我们在运行程序时没有任何错误的即时窗口的输出。

与使用Msgbox显示代码输出相比,Debug.print具有两个主要优点。它消除了每次单击“确定”按钮的需要,并将返回的输出值的日志显示在立即窗口中。这样可以节省大量的用户时间。本文通过许多示例说明了excel VBA Debug Print的用法,并解释了如何使用它涵盖以下内容。

什么是VBA调试打印?

调试是VBA中的一个对象,可与两种称为“声明”和“打印”的方法一起使用。打印有助于显示消息,并断言有助于评估条件。在VBA中,debug.print语句用于编码程序的任何位置,以在“立即窗口”中显示变量或消息的值。这些不需要任何确认或确认,并且不会对开发的代码产生任何影响。在这种情况下,在代码中使用安全性最好,以便利于访问许多用户。这些仅有助于测试或评估代码以确认其是否正常工作。在Excel工作表中打印变量,字符串,数字,数组,值以及空白和活动工作表。

如何使用Excel VBA调试打印?

VBA debug.print是有助于在立即窗口中一次显示更多数量的变量的语句。这是显示输出的最佳替代方法。

例如,

Debug.print计数,总和,平均值,标准偏差

如示例中所示,所有变量都用逗号分隔。即使未打开窗口,此语句也可以将输出传输到直接窗口。它不会像Msgbox中那样停止运行代码。这种灵活性支持针对代码中的更改连续监视输出中的更改。

变量计数,总和,平均值和标准偏差在同一行中以相等的间距显示。如果没有打开立即窗口,请按照以下步骤查看输出。

打开立即窗口并查看输出的步骤

  • Ctrl + G 或在VBA编辑器中单击“查看”菜单。
  • 选择“立即窗口”选项。
  • 将光标放在窗口中,然后再次运行代码。
  • 观察窗口中的输出。

Excel VBA Debug.Print的示例

以下示例说明了在excel VBA中使用调试打印的情况。

您可以在此处下载此VBA调试打印Excel模板– VBA调试打印Excel模板

Example#1 –显示变量的值

首先,转到“开发人员”选项卡,单击“宏”,然后创建一个宏以在VBA中编写代码并为其添加名称。

添加名称后,单击创建。这将打开VBA编辑器。

如图所示,开发一个小程序。

代码:

 Sub Variables()Dim X作为整数Dim Y作为字符串Dim Z作为Double X = 5 Y =“ John” Z = 105.632 Debug.Print X Debug.Print Y Debug.Print Z End Sub 

如屏幕截图所示,三个维度或变量分别减小为X,Y和Z,分别为整数,字符串和Double。要打印这些值,将使用Debug.print,输出将显示在立即窗口中。按 CTRL + G 以查看输出,如屏幕截图所示。

使用F5键运行此代码,然后按CTRL + G 在立即窗口中查看输出。

可以通过用逗号分隔debug.print语句来简化此程序。

代码:

 Sub Variables()Dim X作为整数Dim Y作为字符串Dim Z作为Double X = 5 Y =“ John” Z = 105.632 Debug.Print X,Y,Z End Sub 

此debug语句将输出显示在屏幕截图所示的同一行中。

Example#2 –调试打印到文件

本示例说明了文本长度过长时,使用VBA调试打印将输出显示到文件中的情况。

如图所示,开发了将输出打印到文件上的程序。

代码:

 Sub DebugPrintToFile()Dim s作为字符串Dim num as整数num = FreeFile()打开“ D:\ Articles \ Excel \ test.txt”,输出为#num s =“ Hello,world!” Debug.Print s'写到立即窗口Print #num,s'将输出写到文件Close #num End Sub 

在此程序中,称为S和Num的两个变量分别视为字符串和整数。 open语句用于创建名称为test的文本文件。在变量S中声明了一个名为“ Hello World”的字符串。

当您手动或使用F5键运行VBA代码时,输​​出将被写入立即窗口,并且一次在文件夹中显示文件。

输出到文件的情况如下图所示。

当显示长文本时,将输出打印到文件是有益的。

Example#3 –在立即窗口中显示数字的阶乘

此示例说明了使用debug.print语句显示数字的阶乘。

代码:

 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 * Fact * Count Next Count Debug.Print Fact End Sub 

为了确定阶乘,考虑了三个变量,包括计数,数量和事实。 for循环用于重复事实值与计数的相乘以确定数字的阶乘。

在这里,debug.print语句在“ for”循环外使用,以在循环完成后显示该值。输出确定为。

如果我们在“ for”循环中使用debug.print语句,则会在每个重复时间显示事实值,如图所示。

代码:

 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下一个计数End Sub 

通过按F5键运行代码,然后在立即窗口中查看输出。在这种情况下,我们应将最后一个值视为给定数字的阶乘。

Example#4 –打印活动工作簿的全名

本示例说明如何在当前窗口中打印当前工作簿名称

该程序如图所示开发。

代码:

 子Activework()暗淡计数,只要计数= 1到Workbooks.count Debug.Print Workbooks(count).FullName下一个计数Debug.Print计数End Sub 

“ count”是用于计算活动工作簿数量并显示活动工作簿全名的变量。如图所示,显示活动工作簿的全名和数量。

通过使用VBA debug.print语句,可以准确显示驱动器中工作簿的路径。

要记住的事情

  • debug .print的主要问题是在即时窗口中没有用于长字符串的文本换行选项
  • 立即窗口应置于顶部,在用户界面中查看输出
  • 不能包装立即窗口中显示的长文本。在这种情况下,需要将输出显示到驱动器中存储的文件中。