分享

Excel VBA编程详解

 L罗乐 2018-03-20



周五下班,小宇问我“这期文章主题是啥”。

“Excel中VBA编程的具体实现呀”

“为什么会写这个,有什么用吗?”


你们也这样觉得吗?那我就来结合工作实践讲讲这个有什么用。

在工程开发中,比如A同事从事汽车控制策略开发,我们都知道这是个设计与验证不断迭代的过程。现在到了实车验证阶段,用can卡去车上采集信号数据,发现有些数据结果不对。现在打算从采集的数据当中筛选一些特定的工况数据,导入模型进行再次验证。可是设备采样周期设置的是10ms,半小时的数据保存在Excel中就上万行,一个个去找不太现实。这个时候我们可以用VBA编程设定具体的条件,让代码帮我们筛选出想要的数据。

在办公室日常管理中,比如B同事负责单位人员出勤统计,需要统计本月每位员工的到岗、迟到、旷工、出差、休假等情况。偶尔一次还好,如果每个月都要做这方面工作的话,我们是不是应该考虑做个小工具一劳永逸呢?


以上功能都可以用VBA编程实现,而且实现起来也很简单。下面就让我们来聊一聊如何实现VBA编程。(本篇仅适于VBA编程入门学习)


本篇会出现一个高频词汇,“宏”。简单点,可以把它理解为一些程序代码的封装,来完成一些具体的操作。

使用Excel调用VBA程序(即宏),先要进行一些设置:

03版本Excel的操作为【工具】-【宏】-【安全性】,弹出如下菜单(图1)。我们在Excel中调用宏,需要将安全级设为中或低。设置完后重启Excel。                           

图1 安全性设置

WPS中的宏操作工具栏一目了然,比03版操作起来顺手很多。界面如图2所示。

图2 wps宏工具栏

下面我们以WPS10.1版本为例进行介绍,03、07版的具体操作和WPS差不太多,基本功能都是一样的。


创建宏

根据宏的触发执行方式不同,创建方式也不同。宏有两种触发执行方式,一种是直接运行,另一种是和控件关联,通过按钮等控件触发程序执行。

创建方法:

        ①直接运行的宏:点击“宏”-输入要创建的“宏”名-创建,即可。

        ②关联控件的宏:“查看代码”右侧有很多小控件可供选择,选中控件放在表中,右键可对控件的属性进行设置,左键双击可进入代码编辑窗口。如图3所示。

图3 VBA代码编辑窗口

在代码编辑窗口,我们可以查看每个sheet中的VBA程序,进入编辑窗口的方式有很多,点击VB编辑器、查看代码或Alt F11均可。

创建宏之后,代码窗口会自动生成Private Sub…End Sub,然后我们将想要执行的操作用程序语言描述清楚填入即可。这里对Sub简单扩展一下,Sub类似我们编写程序时自定义函数Function,区别是调用Sub子程序时没有返回值,而且可以直接执行(F5或链接到按钮控件),不需要由主函数调用执行。所以,拿来处理一些任务是很方便的。


宏代码

接下来讲讲VBA编程的常用命令语句。对学过C语言的人来说,这部分其实很简单,也很好学。我将主要的知识点做成了图片,如图4所示。


图4 VBA编程常用命令

注意图3,左侧WPS表格对象Sheet1(Sheet4),“Sheet1”是工作表序号,“Sheet4”是工作表名称。这里我们使用'Sheetx.Cells ( m,n )'指定单元格时,使用工作表序号。

当我们的操作对象类型不一致时,需要用强转命令转换对象类型。在上上期《趣事-合并单元格》中,我们使用Cstr将数值型数据转为字符型,然后进行单元格内容合并。


运行宏:

在代码编辑窗口,按下F5程序就被执行。退出编辑窗口,如果是和控件关联的程序,点击控件按钮,程序触发执行。非控件关联程序,点击【宏】,在界面选中要执行的宏,运行即可。


VBA编程不需要过于复杂的语句,只需要掌握基本的语言框架,能够使用一些常用基本命令,if条件选择,For/While循环执行基本就可以满足工作中的需求。如果有不清楚的指令,还可以通过录制宏来查找。所以,运用起来也很简单。


I hear and I forget. I see and I remember. I do and I understand.

大家如果想真正掌握VBA编程这项技能并运用到工作中,还是应该多动手实践。

下面是开篇中讲到的运用VBA处理考勤统计的编程实例,感兴趣的可以看一下。实现功能:点击“考勤汇总”按钮,自动统计每个人的天数和工时,并设置不同的单元格颜色对工时做出标记。

图5 待处理考勤表

图6 处理结果


图7 考勤处理代码(参考)


篇幅有限,今天就介绍到这里吧!

分享个好消息,这周“四杯咖啡”终于收到了微信平台的原创开通邀请,从此,我们就有自己的留言板了!哈哈,好期待谁会是第一个留言的呢?

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多