摘要:最近很多人打开Excel,运行以前用得好好的宏,突然就报错了,一堆英文弹窗看不懂,宏直接跑不动了。
最近很多人打开Excel,运行以前用得好好的宏,突然就报错了,一堆英文弹窗看不懂,宏直接跑不动了。
有的还以为自己写错了,其实这锅真不在你。
罪魁祸首不是VBA,而是VBScript。
VBA是写在Excel、Access里那种“录个宏自动干活”的,很多人平时就在用。
VBScript是另外一种“幕后脚本”,很多VBA宏为了搞点高级操作,比如正则表达式,都会偷偷借它一把力。、而在此之前微软决定把VBScript淘汰掉,这才引发了现在一连串连锁反应。
其实微软不是突然动手的。
早在2023年就宣布了这事,只是那时候很多人没当回事。
最近Office更新到2508版本,影响开始真切显现:宏里的某些操作突然就崩了,弹窗提示“Assertion Failed”,你一脸问号,不知道哪出问题。
这不是bug,而是VBScript的功能开始失效了。
像以前常用的VBScript.RegExp正则表达式功能,一下就不兼容了。开发社区虽然也给出临时解决方法,比如加个括号凑合跑,但这撑不了多久。
微软已经定下时间表,VBScript会一步一步从Windows里消失。现在还能用,以后就得手动打开,再后来就连打开的选项都没有了。
原因很简单,VBScript太老了,欠缺安全性。
它出生在互联网刚起步的年代,基本没有啥防护机制。
以前很多病毒邮件、网页木马,全靠它搞事,一不小心就能触发执行,门都不关一下。
更关键的是,它已经不是非用不可了。系统级自动化,现在大部分人用的是PowerShell,既安全又强大。
办公里需要的自动化,VBA还能顶得住。VBScript就变成了一个不上不下的尴尬角色,留着还老出事。
还有一个不能忽视的点:微软这几年一直在推动Office从一次性买断转向订阅制(比如Microsoft 365)。
像这次,VBA里突然支持了“原生正则表达式”,不再依赖VBScript,但这个新功能只给订阅用户开放。你用Office 2019、2021?不好意思,没有这个待遇。这种操作已经很明显地在引导大家往订阅版靠拢了。
你的宏,是不是也该“退休”了?
很多企业里,Excel根本不是用来算账的,而是当成了“迷你系统”,各种宏、脚本嵌套一堆,一动就全乱。但现在这个局面,不太能撑下去了。
脚本靠的是旧的语言、老的接口,只要微软哪天再动一点,可能整个流程都直接断掉。到时候你不是修一行代码,而是得翻出十年前那位同事的“神秘公式”,然后坐那儿猜它到底在干嘛。
这时候更稳的做法,不是拼命修补,而是开始把流程往更清晰、可控的方式迁移。比如现在有不少企业开始用eversheet,是国内做得比较早的,不会编程也能搞定流程自动化,画excel做出来的东西还可以直接生成手机端应用,真出问题了,业务人员自己就能改,不用等IT那边排队。
说到底,过去是“技术套流程”,今天更讲究“流程驱动技术”。
微软这次动VBScript,背后其实也透露出一个趋势:不是技术本身出了问题,而是它的生命周期到了尽头。
你会发现,不只是VBScript,很多我们习以为常的东西,都在慢慢退出舞台。有些被更简单易用的工具替代,有些干脆不再适应现在的安全要求。要是不提前布局,等出问题那天才着急,就晚了。
你现在在用的宏,是不是也有类似的问题?里面有没有调用VBScript的东西?有没有依赖那种没人敢碰的老脚本?
这些问题,最好现在就开始想想了。
最后,你有什么不同的观点?
文 | Meng
来源:清源eamon