普通视图

wps也沦陷了

2025年12月24日 08:30

office的ADO+SQL跨表查询挂掉已经一周有余。虽然在这期间微软又出了更新,但据说那个更新并没有把这个问题解决掉。就在这周二,有人在论坛上说wps也中招了。之前一直好好的,但突然间就中招了,他并没有说错误代码是什么,是不是跟我们遇到的相同,但可以肯定的是,wps也中招了。office跟wps是两个不一样的东西,所以如果两边都中招的话,就意味着这个bug可能出在windows上,因为绝大多数情况之下,大家都是用windows系统,可能是win10也可能是win11。我用的是win10,所以我用回滚的方式就暂时没有问题了。之所以这样,是因为我没有参加安全延长计划,所以理论上我的win10是不可能再更新的,但win11不一样。谁知道那个wps中招的电脑是不是win11,是不是周一或者周二进行过自动更新。更新那些东西有时候会让你重启,所以你有感觉,但有时候是静默的,所以你根本不知道已经更新了。

就在网友的wps宣告沦陷之前,Office2024批量版也中招了,但是他中招的时间比我们这些当前频道零售版的晚一点点。从他的那个版本号可以看出,他的office已经更新到最新版本,就那个时间来说,跟让我们中招的那个版本差不多,所以我猜测那个版本更新搞倒了一大片的人,无论你是零售版当前频道,beta频道,企业半月更新频道,又或者是批量版。唯一有可能不受影响的是Office2019,因为跟win10一样,理论上那应该已经被微软停止支持,但如果那个Office2019装在win11的系统上,这又变得有点难说。Office2024批量版中招的那个人。他还不知道自己已经更新到最新版本,但从截图我一眼就看出,他没有禁止office更新,同时版本号也预示着他的确已经被自动更新了。office的更新跟windows的更新有些许不一样,因为office除了一些非常大的版本你会有感知以外,其它都是静默更新。

当wps网友宣告他的也沦陷以后论坛的大佬出来了,论坛的大佬测试一番说,最新版本的wps没有问题。wps也是比较神奇的存在,最新版本到底指的是哪个呢?个人版?企业版?专业版?付费版?还有一些针对特殊群体的版本。简单来说就是wps版本的复杂程度我觉得跟微软的office有得一拼。可以肯定的是,office的版本虽然多,但是你还是能在网上找到各种版本的来龙去脉,但是wps能不能查到我不知道。跟office不一样,很多版本的wps还停留在32位。所以到底中招那个人在用什么版本的wps?是32位的还是64位的?是不是针对特殊群体的版本?这都很难说。对普通人来说,哪个版本不中招用哪个版本就完了,但是对一些电脑数控的单位来说,无论是回滚office还是回滚wps,又或者是装另外一些版本的wps都是很困难的。

方法有很多,但是很多时候是人的所谓“安全”限制了我们的想象力。

经历了3次bug

2025年12月19日 08:41

我大概是从2023年夏天开始用各种方法进行跨表查询的,最后留下来主力是ADO+SQL。在这两年多的时间里,我感觉经历过三次说不准什么毛病的毛病。

第1次是不知道为什么,部分VBA运行不了,但貌似只在我的电脑上不行,在别人的电脑上可以,而我的电脑可能重启一下又可以了。这个现象很奇怪。在我办公室的电脑出现概率比较高,因为用得最多,家里的电脑偶尔也会这样,但无论是哪一款,可能重启一下就好了,但也可能重启也不好,因为这个是偶发性的,当我想他重复出现的时候他不出现,当我不想他出现的时候它就来了,所以很无奈,什么都没做过一段时间它自己又好了。当时我没有去深究这到底是什么原因。因为复现效果不好,也不知道该如何描述,但从后来的情况看来,可能这是因为windows或者office的某个更新引发了某个bug,但那个bug在往后的某次更新里又基本上被修正了回来。

第2次出现状况是在今年的夏天。情况就是一直使用的那些查询文件突然需要很长时间才能完成查询,查询是可以完成的,但是需要的时间比正常情况之下多很多。那个时间就比较神奇,是12秒的倍数,这个12秒不同的电脑可能不一样,我办公室的那台电脑是12秒,我家里的那台电脑可能不是12秒,可能需要更长的时间,因为家里那台电脑的cpu性能差一点。为什么会这样呢?这一次我是有研究过的,也在论坛上跟网友们分享过,他们也给出了临时的替代方案。临时的替代方案也不是不行,反正我就一直用那个替代方案,顶多是一开始的时候很麻烦,得把数据源挪出查询文件。微软到底是花了多少时间才修复那个bug我不知道,因为我已经按照替代方案的指引把我的文件都整理了一遍。以至于那个bug根本没办法继续伤害我,但某一次我又闲着,打开测试文件的时候发现那个bug没了,微软不知道什么时候修复了。

接下来就是这一次。这个bug和上一个bug我感觉有点类似,起码我用同样的测试文件就可以把它们都揪出来。上一次网友还可以给出提供替代方案。在不改变office版本的前提下,依然能让查询正常的运行,但这一次,简直就是个未解之谜,而且是封杀掉所有跨表查询。所以这一次好像唯一的做法就是暂时回滚,但回滚了以后,我怎么知道微软什么时候修复了那个bug呢?难道我还要在电脑里装个虚拟机,虚拟机那里用最新的版本?我没办法跟他们耗,首先是因为不能跨票查询就直接把我搞死了,其次是这件事情发生在年末,我没有时间耗。跟Excel打交道的人,年底的数据是最让人疯狂的。所以大概我就只能寄望于其它使用365或者Office2021售版的人给我继续做测试。当他们使用的当前频道可以正常运行测试文件,那么那个时候大概我就可以把365的禁止更新取消掉了。

为什么2025这种bug会出的这么频繁呢?其实我也不意外,因为不仅仅是office,windows的bug也很多。win11几乎每次更新都会带入幺蛾子,现在的微软已经不是以前可以完全信任的巨硬了。

回滚office

2025年12月18日 09:07

用之前的文件做测试以后,其实我已经基本锁定这一次ADO+SQL查询失败的原因。我个人猜测是因为进行了某项封堵,只允许指针到达的那个地方进行数据格式化查询,另外那个用绝对地址引用的东西没办法转化为同样的数据库。这个现象只是从我的电脑里面发现的,我不知道其他人是不是也这样。我的那个测试文件刚好对数据源进行了各种各样的枚举,所以刚好碰巧可以用来测试。如果有人在6种情况下都可以顺利运行,基本确定他的office是不受这一次升级影响。非常有可能他一直停留在某个版本没有升级,也可能他使用的不是当前频道,而是批量版的长期频道或者beta频道。因为我的电脑用的都是当前频道,所以我需要大家一起来测试不同频道是不是同样存在这个问题。我用的是Microsoft 365其它版本的office,比如2021、2024或者2019会不会也受到影响?我个人感觉可能2019没有受到影响,因为和win10一样,在2025-10-14开始就已经停止支持,但因为我的win10在11月依然进行了两个升级,所以2019会不会也受到波及我觉得有点难说。

帖子发布了一天之后,终于迎来了大佬的关注。可能大佬正在使用的那个电脑也受到了这个的影响,而他的电脑又或者他使用的office可能不仅仅是一个版本,所以他可以明确指出某个版本的office不行,但是某个版本可以。他的解决方案是要不等待微软更新解决这个bug,要不重装回旧的那个版本。哪个版本可以他也已经说出来了,装回那个旧的版本以后你还得禁止自动更新,否则还是不行。装回旧的版本我感觉是一定可以解决问题的,但是要怎么装回旧的那个版本呢?登录微软的账号,365那里的确有离线安装包,但是下载安装得花费很多时间,而且那里只会给你提供最新的版本,除非之前就已经把旧版本的离线安装包存下来,否则几乎无解。

大佬都这样说,意味着这一次的bug估计不是修改某个注册表就能解决的。几个月前的那个bug,如果把VBA的文件从xlsm降级为xls,也就是2003版本的那种Excel文件,就能避免查询时间很长的问题。如果只是一个查询文件,降级没有问题,但如果那个文件里面带有大量的格式,这样的降级就会让那个文件面目全非。这一次我也尝试过把xlsm文件降级为xls,没有效果。

之前我从未试过把office降级,但是我曾经试过卸载windows的更新文件。在控制面板里就可以卸载windows的部分更新文件,但office的在哪里呢?显然不在那个位置,于是我就去搜索如何把office回滚到旧的版本,结果出乎意料原来如此简单。

打开office任意软件-文件-帐户-更新选项-禁止更新
windows搜索cmd,管理员模式打开
粘贴
cd %programfiles%\Common Files\Microsoft Shared\ClickToRun\
回车
粘贴
officec2rclient.exe /update user updatetoversion=16.0.19328.20244
回车
等待

16.0.19328.20244是Microsoft 365当前频道的版本,回滚后SQL跨表查询恢复正常。更多office版本请搜索微软官网。

365更新版本的官方链接是:https://learn.microsoft.com/zh-cn/officeupdates/update-history-microsoft365-apps-by-date
更多版本的做法请看:https://www.bilibili.com/opus/1136898381847724034

一波操作后就可以了。我选的时候2510的大版本,让我出状况的是2511版本,在我印象之中,北京时间2025-12-14之前我一直没有问题,而让我出问题的那个2511是属于大版本里面的第2个版本。我选择跳过了2511的第1个版本,为的是更稳妥一些。当我把2510,19328.20244装回去以后。点击查询,VBA正常了,接着我赶紧把这个方法让同事也操作一遍。因为SQL的跨表查询无法进行将严重影响我们的工作。试验证明她的电脑也没有问题了,我们两个的版本都是365。

之后我赶紧回到ExcelHome论坛,把这个简单的回滚方式分享给大家,跟卸载office重新安装比起来这个回滚简单很多,速度也很快,只要你的网速靠谱。因为我感觉其实对office来说,它内部就是卸载了一个补丁,然后再填补一些东西,而并不需要整个office都翻新。单位的网络是很神经,但从开始回滚到结束,大概花了不到20分钟。最长的时间都用在了下载上面,安装很迅速,安装完成以后。365的激活是正常的,我的账号是正常的,也就是说直接开箱使用。查看版本就可以发现已经从2511退回到2510。

本来我的办公电脑是win10,没办法继续更新下去,我觉得让365停止在一个合适好用的版本是一个比较安全的做法。

❌