------补充2020/07/15-21:19:

(1)我认同python在作为胶水语言和库很多这两点上的优势,不过正如文中所述,99.99%用excel的人是真的用不到那些库,也没时间学习(需要有编程基础/思维,英语不错,愿意抽出时间钻研等)。很多时候作为有编程专业背景的人会理所当然地觉得这些都很简单,过分高估大众对编程的学习能力,因为他们已经淡忘了自己是如何花费数年努力学习才走到今天的了。

(2)有人认为python更适合业务逻辑复杂的程序。我个人人为:

任何能简化编程过程的语言,都有利于让程序在"表面上”看起来更轻爽,毕竟很多功能 库 都帮你在幕后做了。但越是庞大的库系统,意味着其基本功能的"块儿”就越大,所谓尾大不掉,比如python只用调用几个函数就能识别图片上的汉字,但最终识别出来的是毫无格式的汉字,你若是要让它识别表格中的汉子,并且把tab、空格等都显示出来,并且调整一下resolution,blahblah,诸如此类的细节都加以要求,那你会发现你就必须重写这个图片识别函数了。but you can't,因为该函数已经被封装成"块儿”了,你只能用这个块儿,改不了里面。尾大不掉。

python与vba就是类似这种关系。对于没用库实现 的,vba能更好实现;对于已经用库实现的,你所处的情景可能需要对库函数的功能做微调,但你想改也改不了。

(3)对于不用定义变量这个问题

但凡编写稍微有点规模的程序,都要求人们有一定程度系统性、整体性的思维,不但要在业务本省上整体考虑,还要从变量上整体考虑,当你用python编写一个超过40个变量的程序时,其实就已经需要通过规范的命名、定义变量,甚至做简单的注释来帮助你理清思路了,所以即便python不用定义变量,用户也是需要把涉及到的变量好好梳理一下的,毕竟这代码写好了要用很久,而且还要叠加更多的代码。那既然如此,还不如一开始就定义一下变量顺便梳理一下呢,所以我从不排斥定义变量。

(4)通过缩短元操作时间所累计节省下的大量时间

工作中,我们大多数脚本其实都是好多好多不到一百行的小程序,而不是那几个执行某个庞大功能的大程序。前者相比后者,在节省时间上的意义绝对有过之无不及。听我解释:

你有计算过一天当中会调用多少次某段脚本吗?我计算过,大概一百多次。我不可能每次调用都回到桌面,打开python再点run。你一天把回到桌面-打开python-f5run 这三个操作做一百遍试试,回来分享一下感受。特别是像我这种在机关做批量合同项目管理的,工作时的我都是每秒钟都要在脑袋里存储8个左右毫不相关的任务(而且都是要做好一阵子的任务),这很蛋疼,更多用的是短期记忆,如果你突然想调用一份文件,或完成某个操作,不用多,你只要多拐2~3个操作后就想不起来你要做什么了,真就这么现实。所以,我通过大量简单但实用的脚本函数,大大缩短我工作中这些元操作的时间,让我脑袋多线程处理任务的容量又多出了很多。

另外,excel可以在sheet上直接装载按钮,你将按钮关联上特定的脚本,以后只需要一点按钮,脚本就运行了,而python作为外姓软件完全做不到,比按钮多了十几部元操作,再乘以个100(一天执行该脚本的次数),再乘以个10(即你一天大概用到的脚本数量),就是你一天要精力精神折磨的次数(一万好几千次)。夸张吗?只有经历过的人才懂我在说什么。

我目前利用sheet做了一个集成界面,因为我在家编辑本文,所以没法上图,等明天上班看我能不能想起来给各位拍一张感受一下。

而这种与excel本身高度融合的集成界面,是python望尘莫及的。

(5)关于微软用python取代vba的传言

我们假设,微软真的用python取代vba了,他们会怎么做?直接把vba从excel中删除吗?显然不会,如果那样的话,全世界在这三十年实践中累积的无数vba代码怎么办?那些仍然靠着vba运行的无数程序、网站、公司、政府、学校,怎么办?全世界靠vba吃饭的程序员也好、金融证券管理blahblah其他管理者,怎么办?学习一门技术是需要付出时间的。

所以微软必须为这些vba财富和使用者负责,如何处置vba,已经不是他们说的算得了。这就好像人家已经买了你的砖头盖好了房子,你却突然说这个砖头不好我特么不想卖了,于是把人家房子拆了一样。

另外,你要清楚微软是一家巨头企业,养了世界上无数的工程师,里面有多少时靠着excel这个软件吃饭的,所以他们会不遗余力地做好并推广excel,保持它的竞争力。而基于python的grid studio是开源软件,不是说它不好,只是它的作者没有理由对全世界用户的使用需求负责,他做grid studio就是为了方便自己的学术研究罢了。而且,他即便有动力,也没有这个力量,他的个人力量在庞大的、被巨大利益趋势着完善excel产品的微软面前不值一提。要知道一款好的开源产品的制作需要巨大的天才,比如linux的作者linus。而其前身unix之所以没被完善,其实也就是因为其作者是个大学教授,做Unix仅仅为了教学,完全没有进一步完善它,为全世界用户负责的动机,这一点上简直跟excel vs gridstudio 一模一样。

再退一步将,如果微软真的傻叉到用python取代了vba,excel中嵌入了python,你知道会发生什么嘛?会有相当一部分用户从excel直接迁移到grid studio。为什么?因为虽然excel的功能完善和复杂程度,在当今没有任何一款表格软件能够匹敌。但是在基本的数据处理功能上,excel能实现的,gridstudio也能实现,这会导致那些对excel的使用只局限于处理数据(用不到字体、样式、各种柱状图等),并且受python热潮影响的,说不定对开源还有一些信仰的人,直接选择grid studio ,因为对这些人来说,迁移的成本不大。

vba的使用。这对于微软无疑是自掘坟墓。全世界大量激活excel带来的利益,都打水漂了,微软员工将面临场面壮观的裁员。而且,excel与其他office产品有集群效应,ppt、work、visio、excel、access……这些软件都是联通的,但所有这些软件都有开源版本,当excel用户迁移到开源版本,你觉得距离其他office软件的用户迁移到对应开源版本的日子还会远吗?

你认为微软这么傻叉吗?

------以下是原文:

-----------------

VBA会被Python代替吗?

诸如"python比VBA好”这种话都是不会VBA的python教教徒或打python培训广告的教教主说的。我是个实用主义,只要能解决工作问题,让我更轻松的工具我就会使用。

1、从大环境上说:

表格处理工具或许除了excel还有很多,但你大概算一下全国14亿人口谁做表格第一个想到的不是excel(开发人员除外)?微软当年通过盗版培养起了大批量用户,这些人会将自己的软件癖好一代代在公司里传下去,因为当全公司99%的历史资料都是excel,99%的员工也都用excel时,你觉得作为那可能存在的1%,你即便会使用再好的工具X又能怎样?每次同事发你excel时你都转成X的格式?你只要操作2、3次就再也爱不起来了。

更何况办公不仅在电脑上,还在手机上,现在几乎每一部Android手机都有excel,同事在微信上传给你的excel你可以随时打开,然后再通过微信转发到电脑上,然后再直接打开……如上这套操作你想想你一天要进行多少次,每次都转格式吗?而你那款自认为比excel还好用的X,等真正普及到每个人的手机、电脑上都有一份,又要熬走多少代人?

2、从融合度来说

python不是不好,只是跟excel融合度并不高,毕竟是外姓。前者操作后者有很多潜在的麻烦。如果我正在做excel,突然做一个简单的批量处理,只需要一个alt+f11就能调出界面,随便敲两行就实现了。有人总拿vba开发大一点的项目运行效率会慢来说事,那我问你,在所有要用到宏命令处理Excel表的人中,有多少是需要开发大程序的?有没有占到总数的0.001%?大部分能写100行代码就开始办公室里面到处吹逼了好吧!

python虽好,但跟office毕竟不是亲戚,你还得打开python程序,新建文件,导入package。而且下次在想用时,你还得到处找上次的python脚本在哪儿。而vba只需要将excel存为xlsm就能找回代码,再一个alt+f11再按f5全搞定。

这就跟苹果当年出了只有一个按钮的鼠标,一群苹果信徒对2键鼠标大肆讨伐,而思路正常的人都知道单键鼠标有多么难用,更何况跟别的电脑完全不兼容,我一个几十块钱的鼠标用完就扔掉,随手就换一个,你的单键鼠标咋换?哈哈哈。现在人们对python的盲目崇拜,对VBA的大肆讨伐,也是同样的道理。是中了流行文化的度,务虚不务实,舍近求远。

3、处理excel真的有必要用python吗?

现在培训广告的口号大多是:学了python,就能批量处理excel表格,提前下班找妈妈恰饭。但问题是,所有excel处理都不涉及任何复杂算法,不需要二叉树啊堆栈啊定义对象啊什么的,顶多是业务逻辑繁琐一点,for循环if判断嵌套得多一点,变量定义得多一点,仅此而已,而这些困难不论再哪种语言(python or vba)都是存在的,而python的主要优势在于人工智能和大数据,请问贵公司贵岗位做两个excel表用到啥人工智能了?无非就是批量建表,批量核对数据,横查竖查,批量打印,都是非常简单的东西,而在处理这些任务时,excel有着先天优势。即便你用了python处理这些任务,你也只是用python的某个库(xlwt、xlrd),其他的库也基本不涉及,所以你也不能说自己会python了,你只能说自己会python的某两个小包。再退一步说,python这些包都是第三方开发的,而vba是微软亲自维护的,你觉得哪个兼容性好?哪个做得更标准?

反正我用vba香的很,每天上班工作量是同事的好几倍,假装贼痛苦,但都按时下班;)

为什么要用python处理excel-以Excel处理为目的学习python还是VBA?相关推荐

  1. python怎么学最快-怎么样快速高效学习Python

    怎么样快速高效学习Python.最近学习Python语言的伙伴越来越多,但大多数人都没有太多时间用在学习上.那么怎么样学习Python时间短又高效的方法就很重要了.下面我把我学习python的方法简单 ...

  2. python零基础怎么学-零基础如何学习Python?老男孩Python入门培训

    现在越来越多的人想要学习Python课程,在学习Python的过程中不少人都会关注学习Python难吗?今天老男孩IT教育小编就为大家详细的解读一下吧. 0基础学习Python语言可以吗?首先个人认为 ...

  3. python零基础好学吗-Python零基础好学吗?零基础如何学习Python?

    现在越来越多的人想要学习Python课程,在学习Python的过程中不少人都会关注学习Python难吗?今天小编就为大家详细的解读一下吧. 0基础学习Python语言可以吗?首先个人认为可以的,Pyt ...

  4. Python工程师是做什么的?如何学习Python

    Python是一种计算机程序设计语言,又被称为胶水语言,可以用混合编译的方式使用c/c++/java等语言的库.你可能已经听说过很多种流行的编程语言,比如在大学里感觉非常难学的C语言,进入社会非常流行 ...

  5. 学python能挣多少钱_学习Python能挣多少钱?什么人适合学习Python?

    学习Python能挣多少钱?什么人适合学习Python? 发布时间:2020-06-14 06:29:44 来源:51CTO 阅读:135 作者:老男孩IT 说起Python这门编程语言,发展前景好. ...

  6. 想学python有什么用-我们为什么要选择学习python?学习python有什么用?

    原标题:我们为什么要选择学习python?学习python有什么用? 从网页编程到时髦的人工智能,机器学习,这个享有"瑞士军刀(万能工具)"盛誉的Python语言,你学会了吗?科多 ...

  7. 零基础编程入门python视频-编程零基础应当如何开始学习 Python?

    Python很适好入门,尤其对于零基础,但是有些前置知识必须要清楚,不是程序代码计算机之类的认知,但泛舟认为比那些更重要的东西. 首先,为什么要程序?不管是为了完成任务还是为了炫耀技术还是为了什么,它 ...

  8. python有什么用-我们为什么要选择学习python?学习python有什么用?

    原标题:我们为什么要选择学习python?学习python有什么用? 从网页编程到时髦的人工智能,机器学习,这个享有"瑞士军刀(万能工具)"盛誉的Python语言,你学会了吗?科多 ...

  9. 从零开始学python大数据与量化交易下载_学习python有什么推荐书?

    先简单回答下题主的两个追问问题.问题1:Python几乎无所不能,从数据分析.软件开发.Web开发.数据库开发.系统开发,到游戏开发,网络爬虫,再到让Python傲视群雄的机器学习.不同的学习目标,当 ...

  10. python后端学什么框架_献给正在学习python的你, 10个最受欢迎的Python开源框架

    很多小伙伴在学习wen的时候说,有没有几个常用的框架,好多小伙伴都只说对了其中几个,只有少部分是说正确的,想要了解更多,欢迎大家订阅微信公众号:Python从程序猿到程序员,或者加4913.08659 ...

最新文章

  1. 深度学习融入博弈论的方法会迸发出哪些新思路呢?
  2. linux 虚函数调用性能,C++虚函数和多态
  3. python全栈 互联网协议
  4. Windows服务的安装,启动,停止和卸载
  5. 使用openssl生成双向加密证书(转)
  6. linux编译blas,Linux下安装BLAS,CBLAS,LAPACK
  7. Java程序编译运行过程
  8. php 递归实现无限极分类和排序_PHP实现选择排序
  9. linux命令echo的实现,Linux echo命令的使用及三种实现方式
  10. Linux中Docker的介绍、安装与卸载
  11. else列表推导式 if python_python3基础09列表推导式|迭代器|生成器|匿名函数
  12. Scott Mitchell 的ASP.NET 2.0数据教程之十七:: 研究插入、更新和删除的关联事件
  13. GJB 质量保证大纲(模板)
  14. STM32中RTC唤醒停止模式
  15. 男人的消费观连狗都不如
  16. 更好用的冒泡排序、双向冒泡排序,拓展荷兰国旗问题
  17. python爬取二手房信息,基于python爬取链家二手房信息代码示例
  18. 有感:pycharm里面下载库的两种方法的下载路径
  19. js apply call bind
  20. 解决Android自定义相机预览和照片分辨率差异的问题

热门文章

  1. 【WIN10】如何关闭右下角输入法的“拼”字
  2. 计算方法(五):数值微分与数值积分
  3. 王爽 《汇编语言》之寄存器
  4. OpenWRT之UCI系统
  5. 【低功耗蓝牙】② 蓝牙状态切换和事件处理
  6. 关于MDL的一些事(2)
  7. Java定时任务技术分析
  8. Linux兄弟连视频教程—B站评论区总结
  9. java元数据的概念_元数据 概念及分类
  10. 安装Ubuntu 系统