VBA第二十六期 VBA用调试语句做进度条
一般在提示是我们用MsgBox函数放在关键位置中以监视特定变量的值:在执行过程时,会弹出函数过程中的消息框。然而消息框MsgBox必须手动进行关闭,特别是大循环结构中我们用了MsgBox就会很麻烦,因为MsgBox弹窗必须要手动关闭才会运行下一步。因此要确保在工作表中只有一个公式使用这种函数,否则将为估算的每个公式呈现消息框,不停重复出现消息框,很快就变得很烦人。这里介绍通过Debug语句来从子过程中调用函数而不是从工作表公式来测试循环过程:采用常见的方式显示运行时的错误,可以修复这个问题(如果知道的话)或利用调试器。·在函数中设置断点,然后逐语句调试函数:随后可以访问所有标准的VBA调试工具。要设置断点,可把鼠标指针移到希望暂停执行的语句,接着选择“调试”|“切换断点”命令(或按F9键)。在函数执行时,可按F8键逐行语句执行过程。·在代码中使用一个或多个临时的Debug. Print语句,进而在VBE的“立即窗口”中写入数值:例如,如果希望监视循环中的某个数值,可使用下列例程:
Function VOWELCOUNT (r) As Long
Dim Count As Long
Dim i As Long
Dim Ch As String*1
Count-0
For 1- 1 To Len (r)
Ch= UCase (Mid (r, i, 1) )
If Ch Like" [AEIOU] " Then
COUNT=Count+1
Dbuge.Pringt ch,i
Endif
End Function
在这个示例中,无论何时遇到Debug. Print语句,都会把两个变量Ch和i的值输出到“立即窗口”中。
Debug. Print Ch, 1
在函数运行的同时使用“立即窗口”显示结果。
如果在程序中把Debug语句运用得当的话就可以代替进度条使用,因为图标是进度条最大的弱点就是要设置非模态窗口,这样在程序运行时不能做别的事情,否则就会报错。