必须Vba,office自带,有点basic基础(貌似大学都要学,高中信息结业考试就是考basic)很容易上手,网上资源教程也多,office自带的帮助文档也很全面。vba很强大,连接sqlserver毫无压力;可调用系统API;使用ActiveX控件等等。VB6的功能它基本都能实现。当然和vb.net比肯定有差距了,比如原生多线程,继承等等。
执行效率只能说一般,前几天遇多一个20多万行的表,50多M(也是醉了……),启用了宏,打开就要半个多小时,当然也可能是他没优化好,还在研究中,拟采用Sqlserver。
对于这个问题,首先要看一下题主处理数据的量是多少数量级别的。然后主要输出的数据格式是什么样的?
如果只是10万以内的数据量,其实直接vba就好了,出来的还是excel格式的表格,方便交流传输。而且做出来的表格传递给同样拥有excel的人,就能马上使用这些开发好的功能了。不需要像python那样还要考虑封装接口什么的。
可是如果数据使用量太高,而输出大多也只是整理好的精简数据的话,python倒是个不错的选择。python入门也不算太难,但是麻烦就麻烦在后期的封装和交流。
2种语言的对比上来说,python的功能要更为强大一些,而且上手也简单许多。vba的话上手也不算困难,只是语法上来说没python那么贴近语义,很多功能模块命令都已经多年没更新过了,使用的时候感觉年代感满满的……
刚好这两个我都接触过,推荐python
vba优势是office自带开发环境,安装省事,但是代码看着头疼,定义变量就把我卡在门外了。
python的话,网上很多安装环境的教程,使用anaconda自身集成好多包,我也是处理数据的工作,使用起来很舒服。原来各种汇总筛选统计,搞得头大。重复工作没意义。现在都交给脚本处理。省下时间继续学习python,偶尔看看自己写的代码,权当复习。原来每天4、5个小时的工作,现在嘛,按秒计时吧。
python最大的优势就是语言很容易理解,语言逻辑清晰。按照自己的需求编写需要的程序,工作不要太省力[机智][机智]。
python是弱类型语言,简单说就是定义的变量可以赋值各种类型的值。vba恐怕不行。
如果你的电脑配置不是特别差,还是使用python吧。听说是比什么CC++需要运行慢,那也是对比。如果只是自己处理数据,python首选。
office套装一开始就是用vba作为脚本的,能够支持python的office是最新推出的,如果你使用的office版本不是这种,就学了python也是用不上。换言之,考慮與舊版本office的兼容性,你最好沿用vba,如果业务上組織的系統將來會全面更新office,就预备python。微軟的office套装軟件,不會放棄vba,只是新增支持python而已。
用VBA写了一个小程序在公司里用,为公司省了2万多的软件采购费,还解决了一些以前的痛点。老板给发了一个500元红包作为贡献奖。你说VBA香不香啊![泪奔]
公司电脑啥也不给装,只能玩VBA啊![打脸]
如果你没有语言基础,并且想学习一门语言来处理Excel表格,那么我的建议是不要学VBA,也不要学Python,C#和
VB.net
任学一门就可以了,然后再学习点SQL的基础,基本上数据处理你就能搞定了,数据处理归根结底还是需要数据库支持,而不规范的表格数据注定不会有很多。不建议学VBA理由可能很多人会反对这个说法,我只能说适合自己的就是好的吧,VBA作为一种脚本语言至少是20年前的东西了,20多年来没有什么更新,不论是在语法上还是在理念上都和现代的
VB.net
、C#差异很大,基本上只适用于在office平台上解决些问题,对操作office有更好的支持,仅此而异;如果你学习的是一门现代的语言,不论是C#还是VB.net
,通过第三方库操作office只是它的一种用法而已,能干的事情会更多,处理起来速度更快,效率更高,有人会拿VBA支持事件来说事,但是要知道但凡需要界面事件等来操作的,编制成软件后录入才是更好的方法,而不是在一个表格中折腾。软件连接数据库非常容易,不论是C/S还是B/S模式,给用户的只是客户端界面,数据永远在公司服务器的数据库中,安全性更好,VBA想实现很难吧。
如果你已经会
Vb.net或c#
,那么也只是可以看得懂部分的VBA代码,能写点简单的,如果只会VBA,那么面对VB.net和 c# 编程,基本上需要重头进行学习,原来的那些VBA知识基本上没用。
Python这两年很热很火,但是基本上不适合于普通用户使用,特别是在windows平台上,先说开发环境有很多不说,还有不同的版本支持,需要调用的第三方库,中间的各种不兼容等,如果对linux没一点了解,还是不要碰它,Python实现图像界面有一定的难度,不如C#友好,写好代码后制作成可执行软件用户交互差。
python的强大之处在于它的第三方库非常非常的多,通常只需要很少的代码量就能解决问题,但它对普通用户不友好。
VB.net
这个也是微软的亲儿子,VS的IDE说第二没人敢说第一,上手容易,界面也相当友好,通过简单拖拽就能做出一个图形界面,再引用第三方库
Spire.Xls
、NPOI等处理起来Excel更是方便快捷,你完全可以把Excel中的数据读入到DataSet中,然后在DataGrid中显示出来进行处理,或者在后端处理,也可以直接读单元格来处理,最后处理好的结果你是想保存到数据库中还是想存回原有的表格中,或者是根据某些条件批量生成大量的Excel文件,都是相当容易的事情。最终想学哪个决定在自己,但是在学习之前找个VBA的手册和C#的手册都浏览一下,就明白自己该学习哪个了。
这一个还是要看具体的需求吧,其实VBA和python都是解释型的编程语言,可以说学习的难度都不是很大。
首先,如果只是简单的一些编程,且还是更多的希望基于excel做一些数据处理及分析,VBA不愧是一个很不错的选择,况且个人认为VBA有一个非常好用的功能——录制宏,很多工作表的操作都可以通过录制宏实现,省了很多查阅手册的时间。如果是编写一些不太复杂的业务管理系统的话,excel vba是完全可以搞定的,本人也发布了通过vba实现进销存管理系统的系列课,感兴趣的可以查看。
其次,再说说python语言。个人认为python语言比较大的优势是各种库非常丰富,通过调用各种库,可以用很简短的代码实现复杂的功能。同时,python里面的numpy、pandas等科学计算库,为我们做数据分析也提供了强大的支持,同时Matplotlib库提供了强大的绘图功能,能轻松绘制出各类美观的图。所以说,如果要进行科学计算分析的话,python也是一个不错的选择哟!
作为两种语言都会一些的财务人员,首先还是推荐先VBA,再考虑Python的学习
理由如下:
VBA作为office的原始自带语言,相对于其他语言操作Excel更加方便快捷VBA是Visual Basic For Application 的简称,语法体验和VB一致,都是一个大家族,作为一门脚本语言,学习成本相对于其他语言较低。
Python作为最近几年的热门语言,其语法简洁明了,*也多,财务领域,可以用于数据的采集,ETL和后续分析。就数据方面Python操作起来方便很多,但是对于一些格式图表细节则不如VBA来的方便。
对于新手,首先要学习的就是录制宏!
在Excel中录制宏,把我们的操作录制下来,反复使用,就好像录制视频一样,可以反复观看,其中80%的功能,我们可以通过录制宏来实现,剩下要学习的知识并不是很多
需要学习的大概有
1、工作薄对象,工作表对象、单元格对象、图表类对象(相对前两者使用少一些)等
2、循环和判断语句(FOR、DO、IF常用)等
3、其他重要:数组、FSO、正则、字典等
只会函数、技巧、图表对于复杂一些的财务需求是远远不够的,
集团中,财务面对是经常是大量的文件汇总处理、数据抽取、分析、拆分
这种跨文件,大量的处理,是函数所无法完成的,如果会VBA则得心应手
随着PBI和Power系列的出现,给Excel插上了翅膀,
Power Query :对数据的ETL简单高效,降低了学习成本,对于新手比较友好,
Power Pivot :号称超级透视表,透视表大家都知道非常的好用,对于简单的数据分析,非常方便,那么这个超级透视表,可见一斑
Power Map:数据可视化展示,比自带的常用图表展示更加方便,在Power BI中有了更多的图表插件可以学习
简单说两句,大家有兴趣可以留言,进一步交流沟通!