Excel VBA 8.42一行代码切换多种计算 再也不用写公式了

前景提要

在上一节的学习中,我们学习了如何用VBA代码实现批量向下填充单元格公式的操作,利用这样的操作,可以节省我们很多的时间

同时在使用中我也是强调了一个重点,就是向下填充的过程中,这个区域的选择也是很重要,区域的第一行一定要有公式才可以的,其实这也不算是重点,因为纯粹手工操作的话,也是有这样的要求的。

那么问题就来了,如果我这个表非常的赶紧,还没有写入公式,那么是不是可以用VBA顺带写入公式呢?写入了公式我在下拉填充,整个过程都是VBA来自动完成可以吗?

当然是可以的,不过既然已经用VBA写入了公式,完全可以一次性将多个单元格写入公式,根本不需要二次填充了。

场景说明

这是我们今天模拟的的数据源,从这份数据源中,我们可以看到,数据的结果非常的简单

今天我们要实现的效果就是用VBA代码直接写入共识,在最后一行和最后一列分别进行计算

计算什么呢?

不一定,可以是求和,可以是求最大值,可以是求最小值。。。。

这么多的场景,常规的操作中,肯定是需要根据不同的需要,每次都要重新写入不同的公式,非常的麻烦

VBA就可以一次解决,只需要按需要作出选择,就可以轻松计算了

代码区

做出一次选择之后,就可以轻松实现各种不同的运算?

那是不是要写很长的代码?

不用,看看题目,今天的重点是,代码+公式

Sub sij()

Dim rng As Range, xz&

Set rng = Application.InputBox("请选择单元格", "请选择", , , , , , 8)

xz = Application.InputBox("请选择计算方法" & Chr(13) & "1.求和" & Chr(13) & "2.最大值" & Chr(13) & "3.最小值", "请选择", , , , , , 3)

fangfa = Choose(xz, "SUM", "MAX", "MIN")

rng.Offset(0, rng.Columns.Count).Columns(1).FormulaR1C1 = "=" & fangfa & "(rc[-" & rng.Columns.Count & "]:rc[-1])"

rng.Offset(rng.Rows.Count, 0).Rows(1).FormulaR1C1 = "=" & fangfa & "(r[-" & rng.Rows.Count & "]c:r[-1]c)"

打开APP阅读更多精彩内容