EXCEL乘法公式太多了,太卡了,如何简化? 20

如图上面G186=SUM(G$181:G$185)*$F186G187=SUM(G$181:G$185)*$F187。G列总共有5000多个数值,总共有200列。加起来有... 如图上面G186=SUM(G$181:G$185)*$F186 G187=SUM(G$181:G$185)*$F187。G列总共有5000多个数值,总共有200列。加起来有100W个公式。实在是太卡了,要怎么简化。 展开
 我来答
boyayes
2021-01-11 · TA获得超过4521个赞
知道大有可为答主
回答量:4231
采纳率:75%
帮助的人:1044万
展开全部

公式就是有这个缺点,在公式超多的情况下,就会比较卡。

这种情况下,建议用VBA,别用公式。


如果是2007版以上的版本,要先把你的表格另存为.xlsm格式(启用宏的工作簿)

1、打开工作簿,按Alt+F11快捷键打开VBA编辑器,

2、在左侧点击对应的工作表名称,

3、在右侧输入或粘贴代码,

4、然后关闭VBA编辑器即可。

为了方便复制,粘出代码如下:


Private Sub Worksheet_Change(ByVal Target As Range)

    Dim rng As Range, irow&, isum

    irow = Range("F" & Rows.Count).End(3).Row

    If irow < 186 Then Exit Sub

    If Not Application.Intersect(Target, Range("G181:GX185")) Is Nothing Then '纵向计算

        isum = Application.Sum(Cells(181, Target.Column).Resize(5, 1))

        For Each rng In Cells(186, Target.Column).Resize(irow + 1 - 186, 1)

            rng = isum * Range("F" & rng.Row)

        Next

    ElseIf Not Application.Intersect(Target, Range("F186:F" & irow)) Is Nothing Then '横向计算

        For Each rng In Range("G" & Target.Row & ":GX" & Target.Row)

            isum = Application.Sum(Cells(181, rng.Column).Resize(5, 1))

            rng = isum * Range("F" & rng.Row)

        Next

    End If

End Sub

更多追问追答
追问
VBA更不会
追答
答案已更新。
这个代码的效果,当G181:GX185中的任意一个单元格发生变更时,会触发事件,自动重算该列第186单元格及下方区域。,当F列的186及以下区域的任意单元格发生变更时,自动重算该行的G列及右侧区域。
在朱家尖休息的露珠

2021-01-11 · TA获得超过4080个赞
知道大有可为答主
回答量:2726
采纳率:87%
帮助的人:152万
展开全部
Excel表格中公式太多,太卡了,解决建议:依次单击“公式”选项卡-“计算选项”-“手动”。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式