人生第一份工作给我的启示以及萌发出学习Excel的动力

我人生的第一份工作是在一家男装公司做货品管理,我所在的部门有4个人,1个主管3个职员,组织架构如下图所示

学完excel以后再学什么(人生第一份工作给我的启示和动力)(1)

货品专员负责对接店铺和日常的ERP系统操作,工作内容很简单,基本就是电话联络店铺,然后在系统上进行日常的进销存操作,两个人分别把公司所有的客户按地理位置进行划分,一个人管北区,一个人管南区,我就是其中之一。

数据专员每个星期一会把一周的数据导出来制作数据报表,分别有

1、店铺同比环比报表

2、TOP排名

3、库存结构

4、当季售罄率

所以说数据专员最忙的时候就是周一的上午的前两个小时,8:30忙到10:30。然后从周一上午的10:31开始到周五的17:30开始疯狂追剧......

至于主管在干嘛我记不清了,也许是在谋划战略方向。

对了!我记起来了。这个主管当时对这个数据专员不是很满意,就是主管想看什么内容的数据报表,这个数据专员做出来总差点意思,这让主管很郁闷,经常跑到数据专员的位置上跟她沟通,沟通到动情时数据专员就会闹离职,然后主管就慌了,各种留,各种哄......我不知道为什么会这样,可能那个时候人才市场上招聘不到会操作Excel的家伙。

不骗你,我就是从那个时候萌发出学习Excel的想法。

我当时想,我们4个人的工作完全可以由两个人甚至一个人来完成,如果自己掌握Excel,就能根据自己的需求随心所欲的制作出自己想看数据报表,并且把所有重复性、“客观性”、工作交给Excel来完成,把用在这方面工作的时间压缩到最低,然后其余的时间就可以做一些“主观性”的工作,对客户的服务输出,无论是业务方面还是情感维系、对公司营销活动的建议、商品的库存和销售预警等等。

VBA学习最初的迷茫和开窍

于是我开始学习Excel,各种查资料,各种求人,学习进度也很快。由于无知,那段时间每一天我都感觉自己自信心爆棚,感觉自己已经完全可以驾驭Excel了,直到我看到了一个VBA操作Excel的视频,整个人傻掉了,我没想到Excel还能这么玩,在强烈好奇心的驱使下,我开始自学VBA,由于没有任何代码基础,会计毕业的我,最开始的时候完全懵圈,看代码感觉完全是看天书一样,中途也断断续续放弃过几次,想想不甘心又继续捡起来学习,但始终处于没开窍阶段,没有方向。

期间我零零散散的学会了一些VBA知识点,声明变量,变量类型,FOR循环,IF语句。这些知识点如果只是单个拿出来,用在具体的案例中我能搞明白,但是做不到融会贯通,也没有把学会的知识点来解决工作中实际遇到的问题,因为懂的太少,没碰到那种刚好用我现在仅掌握的VBA知识就能解决的问题。

但是我运气不错,那天是一个双休日,我早上起床打开电脑,在一个VBA相关的论坛上看到一个人的求助,当我看到这个问题的时候突然感觉被雷击中一样,我感觉到我能解决这个问题,于是马上开始编写,一段简单的代码我编写了两个多小时,期间反复调试,于是人生中第一段实际解决问题的VBA出现了,虽然已经过去了好几年但是那个情景却历历在目。为了纪念,我一直把这段代码保存在我的电脑里,时间定格在2015-10-31 上午10:39

学完excel以后再学什么(人生第一份工作给我的启示和动力)(2)

图1

我编写的第一段VBA代码

先来看一下这个问题,如下图所示

学完excel以后再学什么(人生第一份工作给我的启示和动力)(3)

图2

图片上的表格是查询页面,工作表名是“查询”,这个工作簿还有中国、日本、韩国、德国、朝鲜、美国这几个工作表

学完excel以后再学什么(人生第一份工作给我的启示和动力)(4)

图3

每一个国家名的工作表内容都有5名学生和对应科目的成绩,如下图所示,这个是中国工作表的内容

学完excel以后再学什么(人生第一份工作给我的启示和动力)(5)

图4

在查询页通过下拉菜单选择中国,然后点击成绩查询按钮

学完excel以后再学什么(人生第一份工作给我的启示和动力)(6)

图5

获得查询结果,如果查询的名字出现在查询的国家工作表里就会显示对应成绩,反之则显示“/”表示查询不到,因为查询页面里只有张三在中国工作表里,所以可以查询到张三。

学完excel以后再学什么(人生第一份工作给我的启示和动力)(7)

图6

中国工作表里有“大大”这个名字(图4),如果把查询页面的“李牛”换成“大大”再点击查询就能查询到大大了

学完excel以后再学什么(人生第一份工作给我的启示和动力)(8)

图7

这就是代码

学完excel以后再学什么(人生第一份工作给我的启示和动力)(9)

Sub xx()

Dim rng As Worksheet, n%, i%

For Each rng In Worksheets

If rng.Name = Sheet1.Cells(1, 2) Then Exit For

Next rng

For n = 3 To 6

Dim h%

h = 0

For i = 2 To 5

If Sheet1.Cells(n, 1) = rng.Cells(i, 1) Then

rng.Range("b" & i & ":e" & i).Copy Sheet1.Range("b" & n)

Exit For

Else

h = h 1

If h = 4 Then Sheet1.Range("b" & n & ":e" & n) = "/"

End If

Next i

Next n

End Sub

虽然,我并不明白这个求助者发出的这个问题能解决他工作中的什么问题,但是我要感谢他,是这个问题让我开窍,让我对学习VBA更加有信心。

之后我学习了更多的Excel函数和VBA知识,现在我完成了当初的想法,只要是重复性的工作,我就用VBA解决,把用在这方面的工作压缩到最低,原本几个小时的事情,真的可以压缩到几十秒。我把更多的时间用在一些“主观性”的事情上,不但工作轻松,效率还高,还有更多的时间去学习新的知识来更加完善自己的工作。

磨刀不误砍柴工,学习虽然要花时间,但是学到了就是一劳永逸。以前有句话说的是活到老学到老,可是现在在职场中的现状是学到老才能活到老,让我们成为一个终身学习者吧。

,