找回密码
 加入慢享
猜你喜欢
旅行常客论坛

代码调试过程中的断点Break Points

[复制链接]
发表于 2023-3-17 06:30:00 | 显示全部楼层 |阅读模式
分享成果,随喜正能量】人世间就这样,池塘大了,水就深了,水深了,鱼就多了,大鱼小鱼,泥鳅黄鳝,乌龟王八,螃蟹龙虾,鲜的腥的,臊的臭的,什么货色都有。与其抱怨这个世界不美好,不如自己努力,美好和幸运自然不期而至。。
我给VBA下的定义:VBA是个人小型自动化处理的有效工具。可以大大提高自己的劳动效率,而且可以提高数据的准确性。我这里专注VBA,将我多年的经验汇集在VBA系列九套教程中。
作为我的学员要利用我的积木编程思想,积木编程最重要的是积木如何搭建及拥有积木。在九套教程中我给出了大量的积木,同时讲解了如何搭建。为了让学员拥有更多的积木,我开始着手这部《VBA即用型代码手册(汉英)》的创作这部手册约600页,集合约500多个的案例,案例我用汉语和英语同时发布,一方面学员从中可以更好的领会和掌握VBA中用到的一些英语知识,另一方面,大家可以看到各种各样的积木。这部手册是大家学习和工作中的不可多得的实用资料。今日的内容是:代码调试过程中的代码调试过程中的断点Break Points            

断点Break Points
 

断点指定调试 VBA 时宏执行应暂停的代码行。当您想要确保代码确实通过 If 语句的某个循环运行时,它们非常方便。
Breakpoints specify lines of code at which the execution of your macro should pause when you debug VBA. They are convenient when you want to be sure your code does run through a certain loop of If statement.
           
要添加、删除断点,只需在 VBA 项目视图中代码旁边的左侧灰色栏上单击鼠标左键即可。应出现一个红点,指示您已指定新的断点。再次单击该点可删除断点。
 To add/remove a breakpoint simply left-click on the left gray bar in your VBA Project View next to your code. A red dot should appear indicating that you have specified a new breakpoint. Click on the dot again to remove the breakpoint.
           
Assertions – 解决断点错误的正确方法
Assertions – the right way to breakpoint errors
           
通常在可能发生错误的位置指定断点。当您正在运行循环并且不确定错误何时会发生时,或者如果您意识到导致错误,但无法在正确的时刻捕获它的情况,这可能会很麻烦。这是您需要使用 Debug.Assert 的地方。
Often breakpoints are specified in places where error might occur. This may be cumbersome when you have loop running and are not sure when the error will occur or if you are aware of a condition that causes the error but are unable to catch it at the right moment. This is where you will want to use Debug.Assert.
           
Debug.Assert 如何工作?假设您正在除以数字,并希望确保分母为非零。否则,您希望代码暂停。请考虑下面的示例。在第一个示例中,代码将继续正常执行,但是在第二个示例中,宏将立即在断言处暂停,就像定义了断点一样!
How does Debug.Assert work? Say you are dividing to numbers and want to make sure the denominator is non-zero. Otherwise you want the code to pause. Consider the example below. In the first example the code will continue to execute normally, in the second example however the macro will immediately pause at the assertion as if a breakpoint was defined!
           
Sub mynzA()
x = 100
y = 10
Debug.Assert y <> 0 'Condition met: Continue!
 
x = 120
y = 0
Debug.Assert y <> 0 'Condition false!: Pause!
End Sub
运行结果:
           
           
(待续)
           
           
【分享成果,随喜正能量】我20多年的VBA实践经验,全部浓缩在下面的各个教程中:
分享成果,随喜正能量】有些人受恩惠久了,容易从最初的感激,变成理所当然,而偶尔的相助,反而会让他记得一辈子。

回复

使用道具 举报

快速回复 返回顶部 返回列表