关于EXCEL不能自动重算的解决方案

2025-09-27 12:07:49

1、首先,还是按大家常说的,先确认自己是不是“自动重算”的设置没设置好,不行再来用这个办法吧。

2、打开VBA的编辑窗口,EXCEL都自带(WPS不清楚),在菜单中找到插入-模块,然后复制这段代码进去,点击运行(三角形那个按钮);

Sub TEST()

Dim Cularr()

Dim Cx As Integer

Dim Fx As Integer

Application.ScreenUpdating = False

For Each sha In Worksheets

        Erase Cularr()

        Cx = 0

        For Each RNG In sha.UsedRange

                If RNG.HasFormula = True Then

                Cx = Cx + 1

                ReDim Preserve Cularr(1 To 2, Cx)

                Cularr(1, Cx) = RNG.Address(0, 0)

                Cularr(2, Cx) = RNG.Formula

                End If

        Next

        If Cx > 0 Then

        For Fx = 1 To Cx

        sha.Range(Cularr(1, Fx)).Value = Cularr(2, Fx)

        Next

        Cx = 0

        End If

Next

Application.ScreenUpdating = True

MsgBox "重算已完成!", , "【提示】"

End Su

3、连VBA怎么打开都不知道的,我这经验可能不怎么友好,但是如果你存于EXCEL的工作很重要,而且量又大,我这个不失为一个可行的解决方案,麻烦你自己随便百度一下,学习下怎么打开,花不了几分钟,这里就不多说了。

我常年编辑EXCEL模板,有很多人使用的,所以这个不能自动重算,且又不是由于设置自动重算原因引起的,我在2007版本和2010版本都见过,就是整个工作簿的公式都僵住了,非得一个个单元格点进去再回车才会激活过来,激活个别公式是没意义的,因为还会有公式可能引用了没激活的公式单元格,要激活就全部激活,数据才敢用,代码就是基于这个思路,让VBA宏把所有带公式的代码都挨个激活一下,激活之后没有后遗症,保存重新打开都是正常的,不会需要重复使用该代码;

至今不知道是什么原因导致会有这种状况,所以我一直当作是EXCEL本身的BUG,针对性地处理一下,供各位参考下吧。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢