ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 39040|回复: 38

[分享] 调试VBA程序常用方法(初级)

[复制链接]

TA的精华主题

TA的得分主题

发表于 2007-3-12 21:08 | 显示全部楼层 |阅读模式

在中断模式下(ctrl+Break键),可以做:

1.执行    工具----选项----编辑器----勾选“自动显示数据提示”

则当用鼠标悬停在变量或表达式上时,会出现提示窗口,显示其名称和值!

2.在监视窗口查看某些表达式的值,方法是:先用鼠标拖黑以选中表达式,再执行   调试----添加监视,出现“添加监视”对话框。

3.在代码窗口中选中表达式----按shift+F9----出现”快速监视“对话框,显示该表达式的上下文,表达式及其值。

4.按ctrl+G,出现"立即窗口”。它主要有4个作用:

(1).打印信息

在窗口中输入Debug.Print 表达式1;表达式2......,即可以显示各表达式的值!

2.可以给变量或属性赋值!

例如:Form1.BackColor=255

          MaxRows=50

3.可以测试过程

在此窗口中可以直接输入过程名称和实参以便调用过程。

例如:

       MySub 2*i

4.可以检查错误号

例如:输入

  Error 11

按下回车键时,在此窗口中显示11号错误的信息。我常用这个方法来检查错误号!

[此贴子已经被作者于2007-3-12 21:10:12编辑过]

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2007-3-12 21:15 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
先谢谢楼主!

TA的精华主题

TA的得分主题

发表于 2007-3-12 21:22 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-3-12 21:22 | 显示全部楼层

断点

在设计和中断模式下都可以设置断点,当程序执行到断点语句时,则中断执行,这时处于中断模式!

1.设置断点

在代码窗口,用鼠标点击左边区使之出现黑点,代表已经设置断点!也可以把光标移动到选定语句上,按F9.

断点语句以粗体字表示,颜色可以由:  工具---选项---编辑器格式---代码颜色----“断点点文本”选项设定!

2.撤销断点:

调试----清除所有断点(ctrl+shift+F9)

3.使用Stop语句

关闭项目时,断点不被保存,下次调试时需要重新设置。

如果多次调试,最好的方法是使用Stop语句,每当遇到它,程序进入中断模式。

Stop语句可以保存在代码中,测试完后可以全部取消!

[此贴子已经被作者于2007-3-12 21:27:41编辑过]

调试VBA程序常用方法(初级)

调试VBA程序常用方法(初级)

TA的精华主题

TA的得分主题

发表于 2007-3-12 21:29 | 显示全部楼层
请问yanjie老师,当哪个函数或变量、属性输入错误,调试时有没有办法自动修正错误处?谢谢

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-3-12 21:52 | 显示全部楼层

监视窗口可以监视表达式,“快速监视”窗口也可以显示表达式的值。

立即窗口对表达式求值,给变量属性赋值。

本地窗口显示局部变量的当前值。例如下图自己定义的变量:

 

单步执行调试程序:

1.调试----逐语句(按快捷键是F8)

2.在逐语句执行过程中,遇到调用的过程,不想进入其中停留,按shift+F8,可以“逐过程”执行而不进入!

3.跳出过程

调试----跳出(快捷键是ctrl+shift+F8),可以运行当前过程剩余语句代码,转到调用该过程语句的下一个语句去!

4.执行特定的语句块

这是很重要的一个方法,常用到:在中断模式下,把光标移到要执行的语句行处,执行   调试---设置下一条语句,

用它可以设置下次要执行的语句。再把光标移到要停止的语句处,执行  调试----运行到光标处(快捷键是ctrl+F8),则可以运行到该语句处!

这种方法的优点是可以绕过不想执行的语句块(例如你明确知道某个有问题的语句)。


调试VBA程序常用方法(初级)

调试VBA程序常用方法(初级)

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-3-12 21:57 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
QUOTE:
以下是引用向您问好在2007-3-12 21:29:53的发言:
当哪个函数或变量、属性输入错误,调试时有没有办法自动修正错误处?谢谢

我也是初学者,大家共同学习。我想没有自动修正错误的方法把!

但是可以执行   工具----选项----编辑器----自动语法检测,则在代码窗口输入代码产生语法错误时,会立即显示出错误信息!

TA的精华主题

TA的得分主题

发表于 2007-3-12 22:00 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2007-3-12 22:14 | 显示全部楼层
QUOTE:
以下是引用yanjie在2007-3-12 21:57:03的发言:

我也是初学者,大家共同学习。我想没有自动修正错误的方法把!

但是可以执行   工具----选项----编辑器----自动语法检测,则在代码窗口输入代码产生语法错误时,会立即显示出错误信息!

好方法,我以前没用过

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-3-12 22:14 | 显示全部楼层

调用堆栈:应用程序处于中断模式时,显示已被调用过的过程!

1.怎么显示调用堆栈的对话框:视图---调用堆栈(快捷键是ctrl+L)

2.跟踪嵌套过程

在VBA过程中,常常有调用另外某个或某几个过程,模块,窗体。

可以用“调用堆栈”从下往上显示已活化过程的项目名称,模块或窗体名称和过程名称。

操作方法是:ctrl+L  ----用鼠标选中某个过程-----显示。

这时,代码窗口显示出该过程,光标处于即将调用下一个过程的调用语句处。

此时,按(shift+F9)用“快速监视”或(ctrl+G)立即窗口,可以显示有关变量!

3.用“调用堆栈”来检查过程调用自身的能力
[此贴子已经被作者于2007-3-12 22:19:14编辑过]
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-15 01:23 , Processed in 0.045913 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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