- 央国企信创化时,国产Office套件(WPS专业版 vs 永中Office)宏/VBA兼容性实测对比。

2026-07-15

兄弟们,最近信创的风刮得越来越猛,咱们央国企的IT人肯定都被问过:“唉,以前那些带宏的Excel报表,换成WPS或者永中还能跑吗?”今天我就把这段时间实测的干货给大伙儿唠唠,不整那些玄乎的理论,全是真刀真枪的对比。

先交代背景:我们单位之前用的Office 2016,里面有一堆用VBA写的自动化工具——什么一键生成季度报表、批量处理考勤数据、甚至还有用宏做的审批流转。领导说:配合信创,桌面office要换国产。我第一反应:完了,那堆宏怕是要废。于是弄了两台新电脑,一台装WPS专业版(政府版),一台装永中Office专业版,开始了“地狱式”测试。

宏/VBA这玩意儿到底是个啥?打个比方

你以前在Excel里写一个“当A1单元格大于100时,自动把B2涂红”的VBA代码,就像你给办公室的打印机写了一张小纸条:“如果纸张快用完了,就闪红灯报警”。Office本身就像一个会读纸条的机器人。现在换国产Office,就等于换了另一个牌子的机器人——它可能不认识你的小纸条,或者认识一部分,但执行方式不一样。

实测一:基础宏能不能跑?

我先拿了个最常用的“汇总并格式化”宏去试——就是那种把多个sheet的数据粘到一张表上,再自动加边框、调行高。WPS专业版加载这个宏文档时,直接弹了个安全提示,允许运行后,溜溜地跑起来了!甚至界面布局跟Excel几乎一样,代码一句没改。

永中Office这边同样打开,它报了个“编译错误”——“用户定义类型未定义”。我一看,原来是这个宏里用了Application.Speech(让Excel读文字的),永中压根不支持这个对象。删掉那行之后,其他逻辑倒是跑通了,但运行速度明显比WPS慢——感觉像老牛拉车,2万行数据刷格式刷了快半分钟。

实测二:复杂的VBA表单控件

单位有个IT同事写过个“员工信息录入工具”,用VBA做的UserForm窗体,里面有下拉框、多选框、按钮。WPS打开后,窗体控件完美显示,按钮事件响应正常。但有个槽点:WPS的VBA编辑器居然默认是英文菜单(专业版可以切中文,但很多用户不知道),而且调试功能比Excel弱——比如你代码出错,它给出的错误信息不够详细,经常就一句“运行时错误438”,你得自己猜。

永中Office呢,它的宏编辑器倒是全中文,看着亲切,但问题更大:那个窗体的“多选框”控件,在永中里直接变形成了按钮!点一下不是打勾,而是弹出一个消息框。后来查资料才知道,永中把CheckBox控件渲染成了CommandButton——这属于底层对象映射不全,基本等于废了。

实测三:调用工作表函数的宏

有些宏会用WorksheetFunction.VLookup这种Excel内置函数。WPS这边基本都兼容,常用的SumIfCountIf都正常。但永中就不太妙了——我测了一个Application.WorksheetFunction.AccrInt(计算应计利息的函数),永中直接报“不支持此属性或方法”。更坑的是,永中里Range.SpecialCells的某些参数(比如xlCellTypeBlanks)识别不了,导致一个“删除空白行”的宏报了类型不匹配。

给兄弟们的一个小结

| 对比项 | WPS专业版 | 永中Office | |--------|-----------|------------| | 基础宏(无特殊对象) | 兼容性90%以上,几乎无需修改 | 兼容性60%左右,常报对象不支持 | | 表单控件 | 基本都能用,但编辑器体验一般 | 控件经常变形或失效 | | 工作表函数 | 常用函数全通,极个别高级函数不行 | 缺失较多,尤其金融类函数 | | 运行速度 | 接近原生Office,大型表无明显卡顿 | 同等数据量慢30%-50% | | 调试体验 | 英文菜单,错误提示不够友好 | 中文界面,但报错位置经常不准 |

真实建议:如果你们单位现有的VBA宏比较基础(纯数据操作、简单格式设置),WPS专业版基本能直接上手,改个三五行代码就能用。但如果有大量ActiveX控件、自定义窗体、或者调用了Office特有的COM对象(比如Outlook邮件发送),那俩方案都够呛——这种情况我建议用Python+openpyxl重写,或者直接上低代码平台。

另外说句题外话:最近我在找更体系化的信创替代方案,发现一个叫 itfangan.com 的站点,里面有不少兄弟单位分享的实测案例和工具清单,连不同版本的兼容性坑都列得清清楚楚,比咱们自己一个个试省事多了。有兴趣的可以顺道去看看,说不定能帮你少加几天班。

好了,活干完了,改天咱们接着聊信创数据库的踩坑实录!