Excel VBA 杂谈/编程门外汉谈VBA编程

Excel VBA 杂谈/编程门外汉谈VBA编程

首页休闲益智砖块大乱弹更新时间:2024-08-03

本文于2023年6月8日首发于本人同名公众号:Excel活学活用,更多文章案例请搜索关注!

☆本期内容概要☆

大家好,我是冷水泡茶,最近每天分享代码,感觉脑壳子疼,今天就随便聊聊,信马由缰,写到哪算哪。

本公众号注册已有好多年了,注册时间大概是2016年5月份,发的第一篇文章是关于英文的,已被我删除了。从2017年起开始写有关EXCEL的文章,主要是公式函数方面的内容,但感觉文章选材很窄,常用函数就是那么几个,综合使用套路自己掌握的也有限,也不想翻来复去地炒冷饭,所以基本也没怎么更新。

今年2月底,下定决心要写的东西,主要原因是自己对VBA产生了兴趣,并且自己能够编写一些代码解决实际工作中的问题。写公众号的目的有几个:

一来,我想把这些案例记录下来,以免时间长了忘记了,有点可惜;

二来,是想通过写文章来整理思路,完善代码;

三来,想通过写文章来锻炼自己,把脑筋动起来,省得将来得老年痴呆,这决不是句玩笑话;

四来,通过分享,给别人以帮助,同时也能有所收益(是不是这后半段最重要?)。

前戏完了,我们直奔主题,下面我就随便说说自己对VBA的看法:

有人看不起VBA,觉得它太轻量级了,没啥意思。我以前对VBA也是有不少偏见的,原因是你没有用它,你不了解它。VBA与其他编辑语言相比,好处不要太多,首先它不需要额外的开发环境,有EXCEL就能写代码。它的语法也不复杂,很容易上手。最重要的是,它不需要经过编译,直接在EXCEL中就能运行。

说起编程,有人觉得特别地难,看到一堆代码就晕菜。其实,再多的代码也是一行一行的写出来的,你了解了代码运行的核心逻辑,那其实也没有那么难。

在我看来,编程解决2个问题:1.输入;2.输出

你仔细一想,是不是所有的程序都是解决输入、输出的问题?

回到EXCEL VBA,它是如何解决这两个问题的?

我们先看输入:

1、点击一个命令按钮,我们“输入”一个点击动作,那么,在VBA中,就是一个CommandButton_Click事件,VBA就会运行这个过程中的代码。

2、在工作表中输入内容,激活Worksheet的Change事件,在这个过程中,我们可以添加一些代码,它就会运行。比如,我们要限制输入的内容必需是数字,我们就可以在Worksheet的Change事件中执行Target单元格值的判断,可以用函数IsNumeric,或者正则表达式。也可以限制单元格字符的长度,比如发票代码只能12位等等。

3、选中单元格,可以激活Worksheet的SelectionChange事件,就象我们前面分享过的日期控件,我们就通过SelectionChange事件来激活日期控件。

4、工作表的Activate事件,表示工作表被激活,Deactivate事件,表示工作表从激活转为非激活状态。

5、工作簿的OPen事件,就是我们一打开EXCEL文件就会触发ThisWorkBook的OPEN事件,通常我们会在这里面放一条启动登录窗体的代码:Usf_Login.show。如果不能正确输入用户名和密码,你可能就打不开这个文件。

6、用户窗体上,我们可以放上文本框、组合框控件,可以输入数据,还有选项按钮,任选一个,也只能选一个,复选框控件,可以多选,列表框等等。

......

我们再看输出:

1、显示窗体,展示出各种各样的数据,列表框、组合框的list,listview的listitems等等,都是数据的输出

2、数据结果写入工作表

3、listview展示的数据,导出为EXCEL文件

......

大多时候,输入输出是不断地交替进行,最后得到我们想要的结果。我也不想穷举了,没有什么意义,我们只要知道,我们想要什么结果,然后能找到实现这种结果的方法。就像盖房子,用石头也行,砖头也行,泥坯也行,这取决于你手头有什么。编程也一样,你会什么方法就用什么方法,先做起来,用起来再说,不必等到“掌握”了所有技巧才动手。

好象听人说过,编程高手不是学出来的,是调试代码调试出来的,也就是说,我们要想提高VBA编程水平,不要总停留在学的阶段,收集了巨多的教程,却从来没有看完一本,还在不断地下载,总想着哪天会用到。

要想学好,或者说是用好VBA,最好是从实际工作出发,解决实际工作中的问题,这样可谓是一举两得,你为自己或者同事甚至公司提高了工作效率,同时自己还逐渐提高VBA编程技巧。

以我自己的工作举例:

1、我看到收款员手工开具收据,再登记收费明细表,我就想能不能在收款时直接输入收款信息,同时打印出收款单据?于是就有了我们的中医诊所收费系统。

2、我看到有人用EXCEL手工登记鸡蛋的增减与结存,我就想应该能做一个收发存工具,于是就有了我们的最简单的收发存登记系统。

3、我看到越来越多的电子发票,如何能够按有关部门和企业的管理要求收集与保管电子发票?于是我就做了一个“电子发票管理系统”,这个没有公开分享,但我把其中的一块功能分离出来,做了一个电子发票管理助手。当然,这个功能参考了一个公众号分享电子发票台账T006(V1.1.3)。

4、作为一个财务人员,我们撇开少数精英不谈,很多人都要做账,如果公司有财务软件,那还好说,如果没有,老板又不肯花钱去买,那怎么办呢?我们只好自己想办法喽,“手工记账”?那是万万不能的。我们有EXCEL啊,从直接在EXCEL里输入凭证记录,到如今采用EXCEL ACCESS设计的“像模像样”的“财务管理系统”,使用体验那真不是吹的,就一个字“爽”!当然如果不用做账那是更爽!

5、还有一些其他的小工具,我们就不说了,散落在各期分享文章中。

就这样一步一步,经过一年多的时间,慢慢地提高了自己的VBA能力,目前还在不断地探索之中......

好,十块钱唠完了,我们下期再见了。

☆猜你喜欢☆

Excel VBA 电子发票管理助手

Excel VBA 凭证打印

Excel VBA 中医诊所收费系统

Excel VBA 动态添加控件

Excel VBA 酷炫的日期控件

Excel 固定资产折旧计提表

Excel VBA 数组字段定位排序

Excel 处理重复值

Excel VBA 最简单的收发存登记系统

Excel 公式函数/查找函数之LOOKUP

Excel VBA 文件批量改名

Excel 公式函数/动态下拉列表

Excel VBA 输入逐步提示

Excel 基础功能【数据验证】


本文于2023年6月8日首发于本人同名公众号:Excel活学活用,更多文章案例请搜索关注!

查看全文
大家还看了
也许喜欢
更多游戏

Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved