分享

【No.007】初识VBA提高数据处理效率的法宝,听说能解放双手,你造吗?

 L罗乐 2017-04-16

先来说说我是怎么认识VBA的吧!

小编学习VBA说难听点就是被逼的,小编也是个不喜欢每月重复动作的人,尤其要对庞大的数据量进行处理。众所周知,制造业的数据量很多,报表也各式各样,要通过ERP处理是可以,但专门为一个岗位设计各式各样的功能,对于IT部门来讲,简直就是大材小用,杀鸡用牛刀,耗时费力,又无突出效益,这也就苦了小编每个月都要重复倒腾了。刚开始以为把Excel的函数公式学成精就可以横扫千军了,然而,每月的反复性操作显然枯燥乏味:敲敲公式、点点按钮、拉拉范围等等,小编想着要是这些动作在IE(工业工程学)的领域进行拆解,那每个Action都是时间的,在这时间就是金钱的年代里,小编简直就是在浪费生命!

于是,小编狂躁了…

度娘总是在我最需要帮助的时候提供了最精准的信息,终于找到了解决的途径了---宏与VBA,懵懂的我被网上的各种传神的”简单”,”入门级”的词汇吸引了。说干就干,看着论坛长篇阔论,看得我是头昏脑胀的。一个字”累”。

网络的经验太凌乱了,小编想着买书系统地学学,单对于当时穷逼的小编来说,买书是如此奢侈,耐着性子,在偶然的机会,我下载到了一份PDF档的书(现在不知道哪里去了)。




那么,现在就将我的学习经历跟各位Excel粉们分享吧


1、认识宏

在Excel应用程序菜单栏的“开发工具”(如果没有的话,就要在选项中打开)


Excel每个版本的开启方式位置不一样,我用2013版做示范,如有不同版本的童鞋,可在公众号内直接回复向我咨询。

开启“开发工具”选项卡之后,在代码区可以看到Visual Basic、宏、录制宏、暂停录制、宏安全性五个按钮。



刚开始的时候,小编仅仅学习了录制宏,然后将录制的宏打开来学习(录制完的宏在VBE代码是一串代码),不过对于刚认识代码的小编,此刻就是文盲,幸好有认识几个英语单词——Range、Select、Active等等。小编没有去搞懂每一句语言的意思,而是观察执行宏之后的情况,发现我录制后操作可以被复制并执行,当时可把小编给乐歪了。(因宏不是本贴讲述的内容故不在这赘述了,后续会推送。)


代码演示---以下代码就是录制上面操作的过程,瞬间高大上了有木有,后续会对代码进行逐句解析:

Sub 宏1()

    Range('B4').Select

    Selection.Font.Bold = True

    With Selection.Interior

        .Pattern = xlSolid

        .PatternColorIndex = xlAutomatic

        .Color = 65535

        .TintAndShade = 0

        .PatternTintAndShade = 0

    End With

    Selection.Font.Underline = xlUnderlineStyleSingle

End Sub


2、熟悉VBE(ALT F11)

第一点录制完的宏所在的地方就是VBE了,简单点说就是编辑代码的地方啦,下图就是代码的所在地了,左边栏是对象、中间栏是属性、右边栏是过程,上变栏就是通常我们所见到的菜单栏,并无什么特别的,有了这些咱们就可以欣喜地当一名码农了!



3、熟悉VB语言结构

VBA属于VB,就这么简单,会VB语言的人一定会VBA,反过来就不一定成立了,那这样就有人会问了,学VB不是更好吗?这是当然了,但是小编当时为了立竿见影,学速成的,直接上手的看着搜着网上的帖子,看着录制的代码,理论结合实际,操练着...



01


学习过程的结构,这是计算机认准的程序开始和结尾的结构,可以理解为暗号:

    Sub 水饭儿说VBA()

    ...

    End sub




02


熟悉对象、属性、方法这三大要件,也是学习代码的根本,基础先打好在开始动手学自动化

例如一:大象用上鼻子吸水

在计算机世界里就有下面的比喻,现实与计算机都是相通的。

1、对象=大象:在代码里首先得定义变量,而这个变量就可以理解为对象;

2、方法(动作)=吸水:可以理解为要代码要执行什么任务

3、属性=用鼻子:可以理解为用什么方式去执行,当然这个可有可无,有时候只是起到补充说明的目的而已;

例如二:工作簿中在sheet1表后新增工作表

1、对象=工作簿

2、方法=新增工作表

3、属性=在sheet1表后

4、汇总明细表案例

在我们日常工作中经常遇到有许多表被隐藏了,当我们要取消隐藏所有工作表的时候要一个个表取消隐藏,现在我们只要一段简短的代码就可以节约这样繁琐的操作


Sub 取消隐藏()

Dim Sht_Count as Integer

    For Sht_Count = 1 To Sheets.Count

        If Sheets(Sht_Count ).Name <> '总表' Then

           Sheets(Sht_Count ).Visible = -1

        End If

    Next x

End Sub


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

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多