百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

如何调试VBA代码,保证程序运行(VBA学习讲座之37讲)

bigegpt 2024-09-16 12:26 5 浏览


《如何学习VBA》这份资料,是我对初学人员学习方法的辅导,在其中,我讲到了很多有关VBA的学习方法及在教程中一些知识结构的补充说明。虽然是辅助教材,但也突出了我编程思想:积木编程;及我对于VBA的应用定义:VBA是实现个人小型数据自动化的有效工具(手段)。今日的内容是第37讲:写好的VBA代码如何进行调试,保证顺利运行。

3.3.3 VBA程序写好后,如何进行调试,直到程序顺利运行

《VBA代码解决方案》的教程,我贯彻了一种搭积木的编程思路,147讲就相当于147块积木,你有了这些积木,把每块放在合适的位置,来构建你的工程。例如要搭建一处住宅,那么这些积木,有的是管上下水的,有的是管电路的,有的是管气温调节的。当房子建好后,我们首先要测试这些积木是否达到了我们的要求,这个时候就是程序调试了。不是每个程序写完后都能马上正常运行的,有的调试过程很快,有的会时间长些,有的甚至会推倒重来。

什么是程序调试呢?就是编制的程序在投入实际运行前,要进行的测试,测试过程包括修正语法错误和逻辑错误的过程。这是保证程序正确性的必不可少的步骤。对测试时所发现的错误,要进行诊断,找出原因和具体的位置进行修正,从而完善程序。说的直白些,就是说你的房子搭建好后,在你搬家之前进行的综合检验。

一 程序调试的内容:程序调试的范围较广,一般包括如下几个方面:

1语法错误的检验:每一种语言都有自己的语法习惯,你写的代码必须要符合这些规范,而且是必须的。错一丝一毫也通不过。比如半角、全角;参数是否传递正确,是否有相应的属性等等。

2 运行过程的检验:语法通过了,仅是第一步,在运行过程中还会检验很多内容:如循环是否是闭合的,with语句是否是闭合的,参数的定义范围是否有问题,数组的上下标是否越界等等,这个检验就要点运行了。

3 实际结果的检验:上面的第一第二都通过了,程序开始正常的运行,但运行的结果不一定是你期望的结果。这就要考虑是哪里的问题了。

4 程序优化的检验,如果结果和你的预想一致,那么是否就说明程序完美了?不是的,还要有程序的优化问题,包括:代码可读性是否强;占用的内存是否最少;运行时间是否最短;可视效果是否最佳。

二 代码调试的原则:

1用头脑去分析思考与错误征兆有关的信息。

2调试的过程也是自己再学习的过程。

3修改错误的同时应避免产生新的错误。

三 代码调试的方法

1 代码写完后要再次阅读。要最大限度地减少书写的错误。所以我推荐大家利用《VBA代码解决方案》,鼓励大家去复制,粘贴,修改代码,而不是录入代码。

2 在大脑中模拟运行,这个过程十分关键。要让代码在你的大脑中先运行,看运行的步骤,哪个过程先执行,哪个后执行,数据怎么进行查找等等,这个过程也是检查你写代码的逻辑是否严谨。

3 分过程小范围调试,上述的步骤之后,开始真正的调试了,要先小范围的调试,看看数值的关系是否正确。充分利用语句的中断符,msgbox , 临时参数等等

4 总体的测试,小范围测试没问题后,开始执行大范围的测试。这个时候主要看最终的执行结果了,这个时候要设置特殊值来校验,不要一开始就执行几千几万的数据,要从几行开始。根据我的经验,一般出现问题常在一首一尾,所以要重视首尾的数据运行结果。如果与自己大脑的设想结果全然不符,就要检查你编程的逻辑了。

5 数据的追踪。当出现了非预期的数值或者现象的时候,要知道如何去追踪数据,这里就靠自己的经验了,但仍要注意语句的中断符,msgbox , 临时参数的利用。

第7套教程:VBA之EXCEL应用

第1套教程:VBA代码解决方案

【第4套教程:VBA代码解决方案之视频(第一套的视频讲解)】

第3套教程:VBA数组与字典解决方案

第2套教程:VBA数据库解决方案

第6套教程:VBA信息获取与处理

第5套教程:VBA中类的解读和利用

第8套教程:VBA之Word应用(2021年4月底推出)

上述教程的学习顺序:

① 7→1→3→2→6→5或者7→4→3→2→6→5。

② 7→8

  • 如何学习VBA呢? 概括的说就是: 学习过程中要信、解、受、持,更要有回向的业力。无论您在学习的任何阶段,都要对照教程的知识点加持自己的实际工作,总会有丰厚的收获。
  • 教程学习顺序是7,1(或4),3,2,6,5。第7套《VBA之Excel应用》是对VBA基本的讲解;第1(或4)套《VBA代码解决方案》是《VBA之Excel应用》的提高;第3套《VBA数组与字典解决方案》是VBA应用的专题讲解,教程中讲解的专题是数组和字典,大家会在这套教程中看到非常全面的数组与字典的应用;第2套《VBA数据库解决方案》也是VBA应用的专题讲解,教程讲解的专题是数据库,大家会在这套教程中看到VBA连接Excel与accdb的全面应用;第6套《VBA信息获取与处理》是整个VBA应用的提高;第5套《VBA中类的解读及应用》是VBA的最高理论“类”“接口技术”的讲解。第8套教程《VBA之Word应用》需要在第7套教程之后学习。
  • 如果说《VBA之EXCEL应用》是大家认识VBA的阶段,那么《VBA代码解决方案》就要求大家能理解VBA,理解我推出的“积木编程”思想,理解我对VBA应用的定义:VBA是实现个人小型数据自动化的有效工具(手段)。

相关推荐

最全的MySQL总结,助你向阿里“开炮”(面试题+笔记+思维图)

前言作为一名编程人员,对MySQL一定不会陌生,尤其是互联网行业,对MySQL的使用是比较多的。对于求职者来说,MySQL又是面试中一定会问到的重点,很多人拥有大厂梦,却因为MySQL败下阵来。实际上...

Redis数据库从入门到精通(redis数据库设计)

目录一、常见的非关系型数据库NOSQL分类二、了解Redis三、Redis的单节点安装教程四、Redis的常用命令1、Help帮助命令2、SET命令3、过期命令4、查找键命令5、操作键命令6、GET命...

netcore 急速接入第三方登录,不看后悔

新年新气象,趁着新年的喜庆,肝了十来天,终于发了第一版,希望大家喜欢。如果有不喜欢看文字的童鞋,可以直接看下面的地址体验一下:https://oauthlogin.net/前言此次带来得这个小项目是...

精选 30 个 C++ 面试题(含解析)(c++面试题和答案汇总)

大家好,我是柠檬哥,专注编程知识分享。欢迎关注@程序员柠檬橙,编程路上不迷路,私信发送以下关键字获取编程资源:发送1024打包下载10个G编程资源学习资料发送001获取阿里大神LeetCode...

Oracle 12c系列(一)|多租户容器数据库

作者杨禹航出品沃趣技术Oracle12.1发布至今已有多年,但国内Oracle12C的用户并不多,随着12.2在去年的发布,选择安装Oracle12c的客户量明显增加,在接下来的几年中,Or...

flutter系列之:UI layout简介(flutter-ui-nice)

简介对于一个前端框架来说,除了各个组件之外,最重要的就是将这些组件进行连接的布局了。布局的英文名叫做layout,就是用来描述如何将组件进行摆放的一个约束。在flutter中,基本上所有的对象都是wi...

Flutter 分页功能表格控件(flutter 列表)

老孟导读:前2天有读者问到是否有带分页功能的表格控件,今天分页功能的表格控件详细解析来来。PaginatedDataTablePaginatedDataTable是一个带分页功能的DataTable,...

Flutter | 使用BottomNavigationBar快速构建底部导航

平时我们在使用app时经常会看到底部导航栏,而在flutter中它的实现也较为简单.需要用到的组件:BottomNavigationBar导航栏的主体BottomNavigationBarI...

Android中的数据库和本地存储在Flutter中是怎样实现的

如何使用SharedPreferences?在Android中,你可以使用SharedPreferencesAPI来存储少量的键值对。在Flutter中,使用Shared_Pref...

Flet,一个Flutter应用的实用Python库!

▼Flet:用Python轻松构建跨平台应用!在纷繁复杂的Python框架中,Flet宛如一缕清风,为开发者带来极致的跨平台应用开发体验。它用最简单的Python代码,帮你实现移动端、桌面端...

flutter系列之:做一个图像滤镜(flutter photo)

简介很多时候,我们需要一些特效功能,比如给图片做个滤镜什么的,如果是h5页面,那么我们可以很容易的通过css滤镜来实现这个功能。那么如果在flutter中,如果要实现这样的滤镜功能应该怎么处理呢?一起...

flutter软件开发笔记20-flutter web开发

flutterweb开发优势比较多,采用统一的语言,就能开发不同类型的软件,在web开发中,特别是后台式软件中,相比传统的html5开发,更高效,有点像c++编程的方式,把web设计出来了。一...

Flutter实战-请求封装(五)之设置抓包Proxy

用了两年的flutter,有了一些心得,不虚头巴脑,只求实战有用,以供学习或使用flutter的小伙伴参考,学习尚浅,如有不正确的地方还望各路大神指正,以免误人子弟,在此拜谢~(原创不易,转发请标注来...

为什么不在 Flutter 中使用全局变量来管理状态

我相信没有人用全局变量来管理Flutter应用程序的状态。毫无疑问,我们的Flutter应用程序需要状态管理包或Flutter的基本小部件(例如InheritedWidget或St...

Flutter 攻略(Dart基本数据类型,变量 整理 2)

代码运行从main方法开始voidmain(){print("hellodart");}变量与常量var声明变量未初始化变量为nullvarc;//未初始化print(c)...