热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

vba修改文本文档指定行_VBA程序报错,用调试三法宝,bug不存在的

如果把VBA比作一门刀法,那么经过前面内容的操练,大家已经掌握了很多实用的招式。如果我们在刀法招式的基础之上,再掌握更多的“磨刀”心法&#
b6e233c244a000fabc19d66040537b9e.png

如果把VBA比作一门刀法,那么经过前面内容的操练,大家已经掌握了很多实用的招式。

如果我们在刀法招式的基础之上,再掌握更多的“磨刀”心法,那么我们的刀用起来才会又好又快。

所以今天主要和大家分享——VBA“磨刀”心法之程序调试,这也是《Excel VBA:办公自动化》系列教程的第7节。

1.认识VBA:什么是VBA?

2.这些掌握了,你才敢说自己懂VBA

3.VBA变量5年踩坑吐血精华总结

4.VBA中重要的强制申明,谁看谁明白

5.VBA掌握循环结构,包你效率提高500倍

6.精通VBA分支结构,少写程序100行

7554cf5968cd3d1658aebc85d6c63801.png

1.什么是程序调试?

所谓的程序调试就是:在某个计算机程序正式投入使用之前,利用一些工具或方法找出程序的漏洞或错误,从而保证该程序能够正常运行不出错。

这样说,好像仍然不是很明白。我们举个例子,帮助大家更好消化。

案例:根据左侧「C列」富豪榜的身价数据,利用右侧「G列」的判断标准,将判断后的「富豪尊称」填入「D列」

ff034f465427e340349cabc5aa3a00ae.png

在正式分享上述案例之前,先插播一条关于美化宏按钮的信息。

有朋友私信问我:猴子,我的那个「宏按钮」实在是太丑了,我看你设置的就挺好看,应该如何设置呢?

我觉得这位同学很有眼光,既然你已经发现了我的审美,那么也不隐藏了,都分享给你们了。

通常情况下,我们都是按照「开发工具」-「插入」-「表单控件」-「按钮(窗体控件)」这样的路径来绘制我们的「宏按钮」

0f7b5f5ede63627a1c0a3c280e79246c.png

这样绘制的「宏按钮」,简直是巨丑无比,哪能入我猴子的法眼?

ff30ad13f453ea190a35623b5724ae41.png

一对比上图,很明显左侧的宏按钮颜值更高。

就像同样多金的2个男人,要是我,肯定选择更帅的那个,不是吗?

那么,左侧颜值更高的宏按钮如何设置呢?

经过我多年不眠不休的潜心研究,终于,研制出提升宏按钮颜值的方案:

首先,我们点选Excel选项卡中的「插入」-「形状」-「矩形」-「圆角矩形」

6ffa99a065a90352c8447c29cbdfccd0.png

然后,直接拖动绘制就好,绘制完成后,Excel会自动多一个「格式」的选项卡。这个选项卡有很多可以自定义这个圆角矩形的操作,比如:颜色、阴影、大小等,大家根据自己的喜好修改就行。

4aeb0f5526edda3b0aa9205be2b5e40d.png

大家可能还有个疑问,宏按钮确实好看了,可是怎么让它关联宏呢?

纳尼?这能难倒我万能的猴子,又经过数十年的研究,天台式微笑又一次上扬在我的嘴角:

其实,和插入VBA那个巨丑无比的「按钮(窗体控件)」关联宏的操作一样。

我们「鼠标右击」-「指定宏」,然后从「指定宏」列表选择自己需要关联的宏即可。

7e7b6b52da82b3154fb76a202767b8c7.png

「宏美化」探讨完毕,我们继续回到上面的案例。

2.VBA程序如何调试?

我们根据上述案例的特点,并结合之前For循环结构和IF分支结构的2个知识点,首先将这个案例的代码写完(大家肯定都会写,我就直接展示了)。

29a41689ce09f0ee72138fef8c904393.png

运行程序,看下结果

e3006524eb994446deb2f6c8c0ad9595.png

这什么鬼,VBA你这又来侮辱我的智商吗?

不过,俗话说:调试用的好,快乐没烦恼。

因此,我们要用VBA的调试功能,解除VBA侮辱我们智商的烦恼。

(1)我们首次先打开VBA编辑器

8efaed700f6a19cb283c35e665c5067c.png

(2)鼠标点选「断点」位置

77a4eb9b06032fc291d517dad1062dcb.png

比如,我们在「For i = 3 To 12」处设置「断点」,那么我只需要将鼠标挪至每行代码前的「灰色框体」上,然后轻轻点击「鼠标左键」,该位置会出现一个

f37245bba0f798d3c59f1c9092e4899a.png

,并且该句代码会被批色

029b65e148793b4b08b7631668ea4f35.png

,表明「断点」设置成功。

所谓「断点」就是当VBA遇到手动设置的「断点」,运行中的程序将会自动停止,并「批黄断点处代码」,等待下一步执行指令。

套用到这个案例就是,我点击程序自动运行后,当程序执行到「For i = 3 To 12」这句话时,就会自动停止,且批黄该句代码,等待我的下一条指令。

389eeb5b7627cad18fc38c4745958a5d.png

(3)「单步调试」查找错误出处

此时为了找到程序程序出错的位置和原因,我们需要使用「单步调试」,也就是一句句执行,查看每行代码执行情况,更加精准的排查错误。

在VBA编辑器中,依次点选「调试」-「逐语句」,当然最高效的方法是使用快捷键「F8」

e121eb2f49aef4ee872e086c0f59e130.png

(4)鼠标悬停变量处,自动显示当前变量的值

在代码过程中,我们将鼠标悬停在变量上,VBA编辑器将自动提示当前变量的取值,比如:图中的鼠标悬停在「变量i」上,下方会自动显示当前「i = 3」

a4822836e3c7390a68ee3d6a43e62fcc.png

有些小伙伴,可能说,猴子这个悬停显示变量值的功能确实很贴心,你讲解的这个案例,只有一个变量,悬停很easy。如果我的代码中有很多个变量,我要查看多个变量的值,那岂不是...想想都头皮发麻呢。

一听就知道,心中有这样疑问的同学,绝对是“懒中王者”,妥妥的未来科技界领头羊。

所以,接下来,猴子就再给你介绍个“懒人”VBA调试法宝。

(4)「添加监控」让VBA调试更贴心

我们在VBA选项卡依次点选「调试」-「添加监控」

fcc92ed990b81d279e440bd737f39b8b.png

在弹出的「添加监控」的表达式填写需要监视的内容即可,然后点击右侧「确定」按钮,比如:本案例中需要监控「变量i」的值变化,在「表达式」文本框填入「i」,然后点击「确定」

e1a946c01ac0b02eb9b008de95921c6a.png

然后,我们就可以看到在VBA编辑前底部会生成一个名为「监视窗口」的窗体,上面显示了监控的相关内容。比如监控的是什么,当前监控内容的值;监控内容的类型,相关内容大家在实操后,自行探索查看即可

02bdf193d2cba8db125a9fe572f027b3.png

(5)综合利用上述调试功能,快速查找代码出错原因

当我们将上述代码一行行执行,在「i = 9」发现,根据分类方法「C9 = 934」属于二级分类,「单元格D9」显示的应该是「富豪」,而不是现在错误的「超级富豪」

d1f25510899627e6476b2fcfb84b50d8.png

然后,我们就聚焦在这行代码上,检查问题。果然是将单元格的判断值条件写错了,才导致了这次的翻车事件~

f12483814e0c53c8651caaac7242484c.png

然后,修改代码后,发现代码执行结果正常。

2f0b6db3db448118393d48d27eaf2240.png

3.总结

以上就是,我们利用VBA代码调试的功能,实现了定位错误代码、找出原因错误原因、修改错误代码,最后成功执行获得正确结果的全部流程。

通过这个案例,介绍了VBA三大调试法宝。

(1)设置断点

在需要停止的位置手动设置「断点」,程序运行此处批色显示且暂停执行,等待下一步指令。

(2)单步调试

单步调试实现程序逐句执行,快速定位错误代码位置,便于及时排查错误。

(3)添加监视

实时监控需要关注的变量或内容,精准定位错误原因。

同时,还与大家分享了,通过「插入形状」美化宏按钮颜值的小技巧,让你的代码实用的同时,也增加了爆表的颜值。

毕竟,多金又帅的小哥哥谁不喜欢呢?

e9d776b8a2b2773950e628b3ff183899.png

推荐:人工智能时代,你必须要学会这个通用技能

6dac958b81c6072b048c2c69ab24175e.png


推荐阅读
  • CTF竞赛中文件上传技巧与安全绕过方法深入解析
    CTF竞赛中文件上传技巧与安全绕过方法深入解析 ... [详细]
  • 在使用 SQL Server 时,连接故障是用户最常见的问题之一。通常,连接 SQL Server 的方法有两种:一种是通过 SQL Server 自带的客户端工具,例如 SQL Server Management Studio;另一种是通过第三方应用程序或开发工具进行连接。本文将详细分析导致连接故障的常见原因,并提供相应的解决策略,帮助用户有效排除连接问题。 ... [详细]
  • Linux Shell变量初探:初始值解析与使用指南
    本文探讨了Linux Shell中变量的基本概念及其在BASH中的应用。变量是用于存储可变数据的标识符,能够代表不同的值。文章详细介绍了BASH shell的主要优势,包括强大的命令编辑能力、自动补全功能、命令别名设置、作业控制以及前后台任务管理。此外,还涵盖了编程脚本编写和通配符的使用方法,为初学者提供了全面的指导。 ... [详细]
  • 七款高效编辑器与笔记工具推荐:KindEditor自动换行功能解析
    本文推荐了七款高效的编辑器与笔记工具,并详细解析了KindEditor的自动换行功能。其中,轻笔记QingBiJi是一款完全免费的记事本软件,用户可以通过其简洁的界面和强大的功能轻松记录和管理日常事务。此外,该软件还支持多平台同步,确保用户在不同设备间无缝切换。 ... [详细]
  • 如何在CAD阅图软件中将PDF文件高效转换为CAD格式?
    如何在CAD阅图软件中将PDF文件高效转换为CAD格式? ... [详细]
  • 如何撰写PHP电商项目的实战经验? ... [详细]
  • 本文详细介绍了 Excel VBA 3.16 版本中的多种组合筛选技巧,帮助用户高效地处理复杂数据。通过丰富的示例和详细的代码解析,读者可以轻松掌握这些强大的数据筛选方法,提高日常工作中的数据处理效率。无论是初学者还是资深用户,都能从中受益匪浅。 ... [详细]
  • 如何在微信文章中插入附件文档:详细教程与技巧分享
    对于众多企业和教育机构的微信公众号而言,在发布信息时常常需要在文章中嵌入各类文档附件,例如应聘申请表、健康声明书、数据记录表、疫情防控登记表、项目申报评分表及各类公告通知等。本文将详细介绍如何在微信文章中高效地插入不同类型的文档附件,并分享一些实用技巧,帮助用户提升内容发布的专业性和便捷性。 ... [详细]
  • 本文首先对信息漏洞的基础知识进行了概述,重点介绍了几种常见的信息泄露途径。具体包括目录遍历、PHPINFO信息泄露以及备份文件的不当下载。其中,备份文件下载涉及网站源代码、`.bak`文件、Vim缓存文件和`DS_Store`文件等。目录遍历漏洞的详细分析为后续深入研究奠定了基础。 ... [详细]
  • 在 Linux 系统中,`/proc` 目录实现了一种特殊的文件系统,称为 proc 文件系统。与传统的文件系统不同,proc 文件系统主要用于提供内核和进程信息的动态视图,通过文件和目录的形式呈现。这些信息包括系统状态、进程细节以及各种内核参数,为系统管理员和开发者提供了强大的诊断和调试工具。此外,proc 文件系统还支持实时读取和修改某些内核参数,增强了系统的灵活性和可配置性。 ... [详细]
  • PyQt5 QTextEdit:深入解析Python中多功能GUI库的应用与实现
    本文详细探讨了 PyQt5 中 QTextEdit 组件在 Python 多功能 GUI 库中的应用与实现。PyQt5 是 Qt 框架的 Python 绑定,提供了超过 620 个类和 6000 个函数及方法,广泛应用于跨平台应用程序开发。QTextEdit 作为其中的重要组件,支持丰富的文本编辑功能,如富文本格式、文本高亮和自定义样式等。PyQt5 的流行性不仅在于其强大的功能,还在于其易用性和灵活性,使其成为开发复杂用户界面的理想选择。 ... [详细]
  • 在Office 7的VBA环境中,使用宏求解时频繁遇到语法错误问题分析与解决方法
    在Office 7的VBA环境中,使用宏求解时频繁遇到语法错误问题分析与解决方法 ... [详细]
  • 如何在Sublime Text 3中将文件编码格式设置为UTF-8
    本文详细介绍了在Sublime Text 3中将文件编码格式设置为UTF-8的具体步骤。通过这些方法,用户可以轻松实现文件编码的转换,确保文本在不同系统和平台上的兼容性和一致性。对于经常需要处理多语言文本的开发者来说,这一技巧尤为实用。希望本文能为读者提供有价值的参考。 ... [详细]
  • 微软近日宣布,将在Windows 10的WSL(Windows Subsystem for Linux)中引入重大更新,支持运行带有图形用户界面(GUI)的Linux应用程序。这一举措不仅提升了Windows 10在开发环境中的灵活性和兼容性,也进一步挑战了Linux在桌面领域的地位。通过此次更新,用户可以在Windows 10上无缝运行Linux GUI应用,无需额外安装虚拟机或双系统,极大地简化了开发和测试流程。这标志着微软在提升跨平台开发体验方面迈出了重要一步。 ... [详细]
  • 在 Windows Vista 及其他版本的 Windows 系统中,用户可能会遇到“组策略”无法启动的问题。组策略通过修改注册表中的特定项来实现对系统的配置,相比手动编辑注册表,它提供了更安全、便捷和灵活的管理方式,因此受到广大用户的青睐。然而,当这一重要工具失效时,用户需要采取有效的措施来解决问题,确保系统的正常运行。 ... [详细]
author-avatar
秘色瓷2502891691
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有