EXCEL乘法公式太多了,太卡了,如何简化? 20
公式就是有这个缺点,在公式超多的情况下,就会比较卡。
这种情况下,建议用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列及右侧区域。