代码管理
学习使用VBA来处理Excel的问题,自然是为了简化工作。但是随着自己VBA使用的增多,代码分散在各个Excel文件中,非常的散乱。管理好自己的代码是提高代码复用率的关键,也能提高开发的效率。
数据与代码分离
Excel本身就是数据和代码混在一起的,这确实提供了极大的便利,但是随着VBA使用的深入,会逐渐发现这种便利最终也会带来许多的麻烦:
- 同一种功能的程序在多个Excel VBA中存在
- 修改了一处,却不能修改电脑中所有的差不多代码的地方
久而久之会发现代码实在太多、太混乱了。
为了把数据与代码分离,我个人一般这样管理自己的代码:
编译型的语言,像C语言之类的,一般都有一个官方的库,以及个人编写、收集的库,这些库是一些常用的功能代码,在编写一个具体任务的时候,会去引用(注意这里是引用而不是复制,这个是代码管理的关键,电脑中正常仅有一份库文件)这些库文件,再通过编译生成exe可执行文件。
- 库
使用加载宏来作为库进行代码管理:
一些功能性的东西,比如一些常用的类、函数等,在编写VBA代码过程中会经常使用到,但是本身不是一个完整的可以完成某个具体任务的,我会放在一个加载宏中,固定保存在电脑的某个位置。
然后在具体实现某个任务的时候,如果需要用到,使用工具-引用的方式去调用,具体可以看利用VBAProject来共用VBA代码里介绍的方法。
这样不但能提高效率,而且在使用过程中发现了问题的话,只要修改了加载宏中的代码,所有引用了这个加载宏的具体任务代码都能够完善。
- 可执行文件
VBA自然没有可执行文件这个概念,代码本身也是保存在一个Excel文件里。
个人还是使用加载宏来作为这么一个管理手段,一些经常要使用的功能,会写在一个加载宏中,一般再制作Ribbon菜单,保存在电脑的某个位置。
然后编制一个设置自动加载的加载宏,制作Ribbon菜单:
<menu id="menuOpenMacroFile" label="打开宏文件 " size="large" imageMso="FileSaveAsExcelXlsxMacro">
<button id="1" label="1" onAction="1" imageMso="WordArtEditTextClassic" />
<button id="2" label="2" onAction="2" imageMso="ViewSlideSorterView" />
</menu>
…………
<button id="btnClose" label="关闭 " size="large" onAction="rbVBEClose" imageMso="PrintPreviewClose" />
制作一个下拉式菜单,将常用的一些功能分类制作加载宏,添加到下拉菜单下面,在真正需要用到时候,通过下拉菜单打开对应的加载宏,运行程序,使用完成后再关闭。
个人使用的是这么一个效果:
将常用的功能分类制作加载宏的目的主要是考虑到随着代码功能的增加,如果放在一个加载宏中,太多了容易混乱,分类管理就比较清晰。
至于到底要细到什么程度,还是得看自己实际工作情况,而且也不可能一步到位,因为随着自己水平的不断提高,想法也是会不断改变的。
但是如果能提前规划好一个方法,个人认为还是很有好处的。
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- vue(typescript) 使用webpack-bundle-analyzer
- 2020年学习Python-爬取百度图片
- 自动化运维 | Ansible lookup
- 【TBase开源版测评】Hello, TBase
- linux定位问题常用命令
- 聊聊claudb的zset command
- 腾讯云语音识别v1签名算法详解
- MySQL案例:关于JSON的一个bug
- Confluence 如何查看页面树
- 聊聊claudb的pubsub command
- Nginx证书和Tomcat证书能相互转化吗,请看这里
- 你真的理解 Webpack?请回答下列问题
- docker浅入深出3
- 绘图代码|多组学数据可视化的高端玩法
- Java单元测试——Mock技术配置