{eval=Array;=+count(Array);}

问答专栏Q & A COLUMN

学习Excel一定要精通VBA才是高手吗?

kun_jiankun_jian 回答10 收藏1
收藏问题

10条回答

lscho

lscho

回答于2022-06-22 19:48

首先,我对这个问题持否定意见。

我十多年前曾经用VBA+Access编写过一个100多人使用的生产管理系统,带很多UI界面。可能有些人感觉这样水平算比较高了吧,但我自己确实没这种感觉。

一般讲高手是一个相对的概念,是不是高手应该取决于对比对象。但我觉得使用会不会VBA来判断Excel水平,这对比本身就不是公平的。类似于两个人打游戏,其中一个会用外挂,我们显然不能用会不会外挂来评判他打游戏水平高。

对于普通程序员,学习VBA难度很小,极短的时间就可以上手,但他很可能Excel很多函数都还用不好。事实上,一个人会了VBA,很可能遇到问题首先去想VBA怎么实现,反而降低了探索Excel自身功能的动力。对于不会VBA的使用者来讲,更有动力去挖掘Excel自身的各种功能。

我的意见仅针对这个问题本身,并非劝大家不要学习VBA。Excel功能无论多强大,但仍有靠自身无法实现的功能。熟练掌握Excel后,再有VBA作辅助,生产力会更上一个台阶。

以上都是个人意见,如果对我回答有兴趣或异议,欢迎评论指正。

评论0 赞同0
  •  加载中...
Sleepy

Sleepy

回答于2022-06-22 19:48

不一定哦!

这就像广大非IT学习编程一样,一定要编程才能提高工作效率吗?其实,现在的作业工具(软件)已经足够友好,使用门槛已经很低了。不用编程,一样可以高效作业。比如,快捷键加持,公式加持,熟练度加持等,Excel用起来,也能飞起来。

一、Office拥有丰富的操作指令(命令),快捷键就是调用它们的利器

1、传统的菜单到现在的Ribbon功能区,按下ALT键,就能显示他们的快捷键。熟练使用这些快捷键,左手键盘,右手鼠标,可以将Office玩得出神入化。笔者想起了以前讲遥感的老师,整个讲义板书,都是在Word上,边讲边演示,那速度没得说,很多同学去听课,都是去欣赏他Word的各种骚操作的。其实基本工具箱里也没啥,就是大家常见的图形和特殊字符,但是在这位老师手上,就像会变魔术一样,感觉是直接召唤到指定位置上的,人家不用任何公式编辑器,就能将各种复杂的公式,弄得漂漂亮亮的。

2、不仅是Word,Excel里的各种操作,比如单元格填充,改变字体和背景色,加边框,常见函数等,都有对应的快捷方式。只需要经常去用,自然熟能生巧,就像大家练习打字的指法那样。具体,就不详细介绍了,有很多类似的回答,大家可以去搜索学习。

示例引用(侵删)

二、Excel公式,不仅是效率的保证,更是通用Office走向定制化的基础工具

与数据打交道比较多的金融、证券、财经、审计等行业,素来流行表哥表姐的称呼,这些表哥表姐不仅仅是指他们日常工作需要经常与表格软件(如Excel、WPS)打交道,更是暗指他们是一个能够熟练使用公式的群体。曾有不少网友说,因为自己能够熟练使用公式,在单位里获得了大神的待遇。

公式,的确配得上这样的礼遇。因为,公式可以很简单,也可以很复杂。比如简单的=Left("ABC",1),复杂的如:

示例引用(侵删)

1、公式匹配操作界面(单元格),双击编辑,回车结果,所见即所得,操作简单,门槛较低。在处理大量数据时,或多或少都会依仗公式,比如横向纵向求和,行列业务数据的计算等。

公式,不像快捷方式那样固定和死板,公式能够在一定程度上给予使用者灵活性。不同的公式,就像不同的积木,相互组合总能搭建出一个有效的计算模型。从分类上讲,不仅涵盖了财务、数学、统计等重度表格用户,更是覆盖了日期、文本、逻辑、信息、数据库等通用功能。利用通用和特定行业公式,几乎能应对表格中各种计算问题。

Excel函数简单分类

功能丰富的公式,让公式使用者有足够的模型构建材料,其中逻辑、信息、查找和引用公式,不仅服务于单元格,更服务于公式本身,成为公式组合的粘合剂,使得公式可以处理非常复杂的计算需求(当然公式也会变得非常复杂)。

2、公式不仅是Excel内置命令的调用出口,更是表现得越来越像脚本语言。笔者在《

》《什么是脚本语言?为何VBA不算脚本语言?》中就提到,Excel中宏和公式,才是真正的脚本语言,他们才是离不开Office的大家闺秀,而VBA不是!

公式就像是在调用函数一样,而公式名就相当于函数名。如果大家写过VBA自定义公式,那么就更能体会这句话。公式中的IF函数,就类似于VBA中的IF语句一样,可以构建分支公式。不仅如此,公式中还可以构建迭代递归(自己调用自己),比如规划求解。在公式编辑栏中,使用F9就可以对公式进行调试。当编写好公式时,回车就可以执行,相当于将公式脚本提交给Excel解释执行。如此看来,编写公式像不像在写脚本呢?

三、公式其实是一门编程语言,这才是其灵活好用,可简可繁的原因所在

笔者曾在《会写Excel公式,算编程吗?》里提到,会写Excel公式,也算编程。公式也算编程?一度遭到很多网友的嘲讽。其实,OOP(面向对象)之后,又炒过一段时间函数式编程,很多人推崇备至。仔细想想,Excel的公式,不就是函数式编程的最早实践么?不就是公式嵌套么?这个跟现在很流行的轻(低)代码,机器写代码概念一样,Excel中录制宏,不早就在实践机器写代码了么?其实很多东西,对于非职业IT们,不必舍近求远。

如果说早期(2021年前)的Excel公式,符合脚本语言的定义(编写->执行,中间压缩了编译和链接环节),大家或许没什么争论。但是,要将其视为一门编程语言,大家还是很难接受的。首先,一般的脚本语言功能有限,仅能执行简单的自动化任务,多用于辅助场景而并非开发场景。其次,一般的脚本语言并非都是图灵完备的,而常见的开发语言却几乎都是图灵完备的。最后,公式没法定义变量,支持的数据类型有限(数字、字符串和布尔值)。

Excel公式很难满足图灵测试,这就意味着并非所有计算问题都可以通过公式解决,而只能寻求VBA的弥补。这是很多高级公式玩家,到后面都或多或少转向VBA的原因。Excel公式,虽然可以借助外在手段,实现自己调用自己,但公式本身却难以实现自己调用自己。另外公式本身也不能自己扩展自己,她仅是有限功能的映射。因此,Excel公式在业界,很难被认可为是一门开发语言。

但是,事情却在最近有了转机,LAMBDA机制的引入,让Excel公式具备了图灵完备性,因此现在的Excel公式,真正的是一门开发语言了。让我们开看看是怎么回事吧:

1、微软声称,Office自1980年发布以来,Excel 改变了人们组织、分析和可视化数据的方式,为每天使用它的数百万人提供了决策依据。其中,Excel公式承担着非常关键的角色,用户使用规模比世界上所有 C、C++、C#、Java 和 Python 程序员的总和还要多一个数量级

2、因此,微软认为是时候将Excel公式升级为一门成熟的编程语言了。2019年ACM SIGPLAN编程语言原理研讨会,宣布了重大进展:一是,丰富Excel公式数据类型,不再局限于文本和数字,并允许单元格包含流记录,包括链接到外部数据实体。二是,动态数组允许普通公式计算溢出到相邻单元格。

3、2020年12月,推出LAMBDA机制,允许用Excel的公式语言编写新函数,这些新定义的函数可以调用其他LAMBDA定义的函数,任意深度,甚至递归。也就是说,有了LAMBDA,Excel公式就变成了图灵完备的,可以胜任任何计算问题。

4、在函数式编程中,LAMBDA本身就是一种高度表达的编程结构,一个LAMBDA可以是另一个 LAMBDA或其结果的参数,完全可以进行柯里化。因此,Excel公式,一跃成为函数式编程的典范,可称之为公式语言。所以,编写Excel公式,就是在编程了哦。

如果,前面的介绍显得抽象空洞,那么来看下官方的实例吧:

1、计算直角三角形的斜边长度,可以是这样=LAMBDA(X,Y,SQRT(X*X+Y*Y)),也可以是这样=LAMBDA(X,Y,LET(XS,X*X,YS,Y*Y,SQRT(XS+YS)))。该函数采用名为X和Y的两个参数,将X*X的值绑定到名称XS,将Y*Y的值绑定到YS,并返回SQRT( XS+YS)作为其结果。

2、递归反转字符串,这在以前超出了Excel内置公式,只能使用VB/VBA或JavaScript在公式语言之外编写。但现在不必了,下例中将REVERSE定义为递归LAMBDA,它利用几个辅助函数(HEAD和TAIL)分别计算第一个字符和除第一个字符以外的所有字符。

瞧,这就是函数式编程!

3、定义阶乘函数。在以往的传统公式中,名称具有非常广阔的应用场景,在使用传统宏,数据有效性(下拉选项),条件格式等领域,都有着名称的身影。在LAMBDA中,名称在简化表达和精简逻辑上仍然具有强大的用途。比如一个复杂的LAMBDA,往往具有繁琐的嵌套细节,如果使用名称来代替,就会清爽很多。上例1中的公式,用名称定义为aa,则可以用aa(x,y)来调用该公式,这样就无需在使用LAMBDA公式时重复整个公式。

即使不依赖递归定义的名称,公式语言也是图灵完备的,因为我们可以使用经典的按值调用对递归函数定义进行编码。比如下例中的阶乘函数:

是不是很神奇呢!

四、VBA在Excel高阶应用中的作用

是不是拥有图灵完备的公式,就可以远离VBA了呢?当然,答案也是否定的。

虽然公式的所见即所得的使用模式广受欢迎,具有良好的用户基础,是公式的优点。但复杂的嵌套公式,在可读性上仍然存在很多问题。因此,复杂公式让普通人难以掌握,最终沦落为少数极客的玩物。就前述的LAMBDA公式而言,很显然目前的编辑框,是远远不够的,更需要1个专业的编辑器和调试环境,而目前并未配备

其次,LAMBDA公式毕竟是2021年才推出的东西,需要在最新版上才能体验。而大部分Excel用户不一定都升级到了最新版,也就是说绝大部分Excel用户仍然不具备使用图灵完备公式的条件。这就需要VBA等第三方开发工具来弥补公式的某些缺陷

最后,LAMBDA公式仍然和Excel的UI深度捆绑,即便图灵完备,也是一款高度定制化的脚本语言。可移植性、封装性和性能等若干方面,仍然没法和VBA等第三方独立开发工具相媲美。因此,在特定应用场景,仍然离不开VBA这样的编程工具。

五、学习Excel的正确方式

1、了解Excel的功能种类,了解Excel可以做什么,不可以做什么

2、熟悉各种功能的手工操作

3、熟悉各种快捷方式,增加手工操作的手速

4、了解熟悉公式的类别和作用,熟练使用快捷键进行应用

5、深刻理解公式的优缺点,知道如何在使用过程中调优

6、对公式的不足,知道有哪些替代手段

7、从编程角度看待公式

8、进入业余编程领域,适度改造Office的使用方式,实现低烈度的定制化

9、磨练多年,有了编程的基本概念,择机进入专业编程领域,实现高烈度的定制化

正如笔者在《明比阅历浅,暗拼体力衰,指下讲武德,码上笑春风》中所说,非IT并不一定需要懂编程,这不是一个必选项,而是一个进化的可选项。熟悉成品软件的使用方法,一样可以高效作业。既然是非IT,那写代码就不是吃饭的事,而是加菜的事。所以非IT对自己的IT追求要定位清晰,那就是"锦上添花",最终达到"无心插柳柳成荫"

让业务问题来驱动IT学习,让业务需求来决定IT技能的涉入深度,是经验证非常有效的。非IT掌握编程与否,以及到哪种程度,要不要将自己打造成复合型人才,就要看自己的进取决心在哪里了。总之,搭上车,从里面看外面,那将是别人看不到的风景。

欢迎关注BtOfficer(收藏、点赞、关注+转发),更多精彩仍在继续哦(专栏文章将更系统,更全面),有严肃而枯燥的技术,也有轻松的唠嗑,更有现成工具等你来拿,期待你的加入!

评论0 赞同0
  •  加载中...
xi4oh4o

xi4oh4o

回答于2022-06-22 19:48

刚开始接触vba是因为excel内置的函数以及各种东西已经解决不了我的需求。所以抛开vba必要与否,我认为当excel函数已经无法满足你的需求,一定需要录制宏或者编辑vba的时候,这个时候vba就是必学的。除非你可以告诉老板,这个东西我不干了,你想咋地?

比如当我们碰到如下的需求时,真的无法再手动了。

需求:某电商平台招募了三方的代销公司,约有320个公司,每个月根据销售情况与供应商结算货款。在只能使用excel没有开发资源的情况下,我们要做到,求和汇总供应商当月每款产品的销售额,货款,并附上原表数据。且有固定的格式。每个供应商一个表。

在没有erp的情况下,多带带复制粘贴新建表300余次我想可能就离疯了不久了。

但是用vba,开始跑程序,一杯咖啡的时间都不用,数据就全做好了。

以下是我用vba做的一个小工具,开发给我发了原始订单数据之后,放入制定的文件夹,点击导出或批量导出,就可以很方便的和他人对接了。

ps:这边没有给出时间的选项,因为默认本月统计上月订单。



评论0 赞同0
  •  加载中...
shleyZ

shleyZ

回答于2022-06-22 19:48

虽然VBA的功能很强大,但没人敢说精通吧,学了点皮毛,那不叫精通,那叫会使用,而对于大部分没有IT技术基础的excel平民来讲,连学会基本的皮毛用法也只能望洋兴叹。

现在我要告诉你,学习Excel,并非精通VBA才是高手。

通过一款新兴的国产无代码开发平台,即使你记不住多如牛毛的excel函数公式,也可以成为excel界的精英。

这是怎么一回事儿?请听我娓娓道来。


只要你会使用excel,就能摇身一变,变成开发管理软件的宗师

这款新型的国产无代码开发平台叫云表企业应用平台。

它的操作界面和excel长得很像,使用方法也和excel如出一辙,即拖拉拽。

云南小松

但需要注意的是,云表平台有自己的独立核心引擎,也不依赖于excel,开发管理软件,有自己的一套开发逻辑。

在云表平台这里,你的业务逻辑越严谨,业务知识越深厚,越有可能成为宗师级别的软件开发者。

事实上,已有大牛通过云表平台克隆了与金蝶K3功能完全一致的系统。

功能随需而改,系统随企业业务发展而成长

通过云表平台开发出来的WMS、ERP、MES、OA、进销存、供应链协同等管理软件,功能是可以随需而改的,完全支持二次开发。

如此一来,系统便能随着企业的业务发展而成长。

Excel解决不了的事情,交给它

日常工作中,用excel解决不了的事情,都可以交给它。

比如数据分析、数据透视等复杂的数据运算,消息推送,闹钟提醒,流程审批,权限控制,工作流,多人协同,小程序,网站,API,外接数据源,报表模板自定义打印,条形码生成,与金蝶、用友、钉钉、企业微信、SAP、浪潮、电子秤、地磅、PDA、GPS等外部系统进行对接,生成移动端app......

对了,它还是可以免费使用的

免费版本为5并发,40模板。

移动端app

ucloud、中冶、中铁、恒逸石化、云南小松等世界500强企业都在用它,中小型企业和个人使用者就更多啦!

免费的软件获取方式,在此奉上:

方法一:

1.我们app搜索“云表平台”。

2.进入之后,在右上角三条杠处,找到“登录”。(或者进去后直接点击“免费注册”)

3.信息填报完毕,即可在“管理控制台”免费获取。


方法二:

点击我的头像,进入个人主页后,在下方找到“免费下载”。

赠人玫瑰,手有余香。如果能够帮助到您,确实是一件值得开心的事情呢。那么,你有信心成为excel高手吗?期待!

评论0 赞同0
  •  加载中...
Aklman

Aklman

回答于2022-06-22 19:48

我只知道学了vba的,也不一定是高手,但是你既然是高手,vba都不懂的话,你说你是高手,能让人信服么?是必要条件,而不是充分条件。

评论0 赞同0
  •  加载中...
Amio

Amio

回答于2022-06-22 19:48

我觉得VBA多是解决一些重复性和复杂性工作的问题,如果处理的数据量不多而且处理没有特别要求的话,真没必要写代码,写个代码花的时间反而比较多,当今罗刚君老师开发的e灵插件,已经可以解决不少国内用户的问题,再者高版本的office本身已经很强大了,在一定程度上会减少VBA使用频率,这是对于大部分用户来说,当然考虑到各个人在实际工作中总会遇到这样那样的问题,能写VBA当然更好。考虑到时间成本,使用频率等的原因,如果遇到麻烦问题不多的话,也可以付费让人代写的。

评论0 赞同0
  •  加载中...
gxyz

gxyz

回答于2022-06-22 19:48

我们常听说Excel高手,很少听到VBA高手。

VBA的确非常强大,但它是依附Excel而存在的。

其实Excel本身内置的功能已非常强大了,如果能用Excel解决的问题,就没有必要搬到VBA里去做,将简单的问题复杂化了。

真正的高手,是会尽量发挥Excel自身的威力的。

评论0 赞同0
  •  加载中...
mdluo

mdluo

回答于2022-06-22 19:48

对于批量计算,批量分析,如果不会vba,你至少是个瘸子。用过vba的人为什么总想用它,就是因为尝到了甜头。对于科学计算,在excel已经很强大的基础上再加上vba,真是如虎添翼,我感觉可以完全取代以前的fortran语言,甚至是vb。实用、并能用它解决具体问题,才是王道!

评论0 赞同0
  •  加载中...
赵连江

赵连江

回答于2022-06-22 19:48

能用Excel解决自己的问题的都是高手吧

评论0 赞同0
  •  加载中...
zhouzhou

zhouzhou

回答于2022-06-22 19:48

是不是高手那么重要吗?

Excel是一个工具,用工具解决工作中的问题。不同工作在使用Excel时需要的功能差别是很大的。有的只是统计下信息,打印出来存档,这种你只需要会排版就可以了公式都不需要。没必要强行拔高,工作用不到的功能,即使当时学会了,过后也会忘。

有的工作专门处理数据,数据量大,规则复杂。这个就可能用到公式,VBA ,PowerQuery 等等复杂的工具。

能够完美 高效地解决工作中的问题,就是高手。获取报酬的是工作,而不是Excel。

如果还没有参加工作,可以针对未来工作的方向,学习Excel,真正工作的时候,重新学习会快很多。

如果已经参加工作,针对自己的工作学习Excel,不要求高求全,已解决实际工作问题为导向。

评论0 赞同0
  •  加载中...

相关问题

最新活动

您已邀请0人回答 查看邀请

我的邀请列表

  • 擅长该话题
  • 回答过该话题
  • 我关注的人
向帮助了您的网友说句感谢的话吧!
付费偷看金额在0.1-10元之间
<