ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[原创] 【基础教程】VBA调试技巧

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2014-8-11 00:14 | 显示全部楼层 |阅读模式
本帖已被收录到知识树中,索引项:Excel帮助和教程
本帖最后由 wmx12345 于 2014-8-11 00:41 编辑

     发此贴的目的是为了扫盲,许多新手遇到bug,不知所措,学习处处碰壁。掌握好调试技术,就能更好学习和使用VBA。
一、调试概述   
         调试最常用的技术无非就几项,断点、单步、监视、Debug.Print、单步强制跳转。有了这几项技术,基本上是没有解决不了的BUG。设置断点的目的,是为了查看变量值。当程序运行到断点时,就会停下来,一个黄色的条条,把鼠标移到任何一个变量上,就能显示出变量值。所以,当你发现运行结果不对时,你就必须分析,哪里可能出现了,在你怀疑的代码前设置断点,然后用单步逐行运行,查看变量值,基本上就能发现BUG了。当然,使用监视,能显示出目前正在运行中对象的属性值,这对于分析一个不熟悉的对象时,是非常有帮助的。
调试1.jpg 调试02.jpg

(一)、设置断点  
断点01.jpg

(二)、单步
一条条语句运行程序,便于查看变量值或者添加语句,仔细分析bug,快捷键F8

(三)、监视
监视01.jpg 监视02.jpg

(四)、Debug.Print.
立即窗口主要有4个作用:
1.打印信息
在窗口中输入Debug.Print 表达式1;表达式2......,即可以显示各表达式的值!
2.可以给变量或属性赋值!
例如:Form1.BackColor255
          MaxRows50
3.可以测试过程
在此窗口中可以直接输入过程名称和实参以便调用过程。
例如:
       MySub 2*i
4.可以检查错误号
例如:输入
  Error 11
Debug.print使用技巧.jpg

(五)、单步强制跳转。
用途:部分时候,需要看下else的运行结果,又懒得去调if的判断值。
用法:当运行到断点或者单步时,鼠标安装黄色那一行,拖动你要运行的位置。


二、调试基本技术介绍完毕了,下面介绍一下常用的快捷键,也是必须掌握的内容!

1F5,运行。这是最常用的快捷键了,运行整个程序。
2Ctrl+Break。一般死循环,按它也没用,程序已经不响应了,所以写程序,一定要养成经常保存、经常备份的良好习惯,不怕备份的多,就怕丢失。
3、单步。也就是下图的"逐语句F8",使用F8,可以一条条语句运行程序,便于查看变量值或者添加语句。
4Shift+F8,Ctrl+Shift+F8,根据个人习惯使用,其实使用断点也可以代替这部分功能。
5Ctr+F8,这句很有用,老是按F8不是不可以,累啊,运行到光标处,也省得设置N多断点了。一般用于临时看看变量的地方。
6、添加监视、编辑监视,这个和鼠标右击作用是一样的。右击菜单都有,谁还在这个地方点啊。
7Shift+F9,这个功能太逊了,还不如把鼠标放在变量上呢,略过。
8F9,这个已经很熟悉了,不需要赘述了。
9Ctrl+Shift+F9,这个非常有用。一旦调试上点儿规模的程序,机会设置很多断点。bug修正好了,要完整运行一遍的时候,使用它可以一次性将断点全部清除,不用一个个去点。
10Ctrl+C,Ctrl+F,Ctrl+H。有些人对这几个快捷键可能是持不屑一顾的态度。它们其实非常有用,尤其是在修改变量的时候,代码不规范,只能靠它们来调整了。
快捷键01.jpg

三、调试的其他注意事项
1、不要随意删代码,不太确定有没有用,复制一份出来,将代码注释掉,再修改,打字不容易啊。
2、使用tab将代码格式调整调整好,不要自己都看不懂,这涉及到编程规范了。代码规范了,调试起来也能快许多啊。
3、输入变量有一个技巧,能很快输入名字很长的变量,如下图所示。
工具栏注释.jpg
Ctrl J快捷键.jpg








【新手必看】VB编程规范说明材料.rar

26.25 KB, 下载次数: 945

评分

7

查看全部评分

TA的精华主题

TA的得分主题

发表于 2014-8-11 06:06 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2014-8-11 08:41 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
真是不错的帖子啊,看来还不错,谢谢楼主分享

TA的精华主题

TA的得分主题

发表于 2014-8-11 09:08 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
相当不错,非常感谢

TA的精华主题

TA的得分主题

发表于 2014-8-11 16:02 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2014-8-11 18:45 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
虽然都用过,但这么整理一遍还是挺棒的!值得赞!!!


期待楼主以后有更多作品分享!

TA的精华主题

TA的得分主题

发表于 2014-8-11 19:43 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-8-11 20:34 | 显示全部楼层
香川群子 发表于 2014-8-11 19:43
举报,1楼附件和主帖内容不同。请楼主确认。

2、使用tab将代码格式调整调整好,不要自己都看不懂,这涉及到编程规范了。代码规范了,调试起来也能快许多啊。

代码写好了,调试起来省力气,是这个意思。

TA的精华主题

TA的得分主题

发表于 2014-8-11 22:22 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
wmx12345 发表于 2014-8-11 20:34
2、使用tab将代码格式调整调整好,不要自己都看不懂,这涉及到编程规范了。代码规范了,调试起来也能快许 ...

我还以为1楼附件,就是你1楼贴出来内容的文档版呢……结果不是啊。呵呵。

我是觉得,1楼内容也应该上附件的。

TA的精华主题

TA的得分主题

发表于 2014-8-11 22:30 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-17 23:57 , Processed in 0.042926 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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