VBA自动写公式

下面的表,我们要使用VBA在C和D两列分别自动输入公式并得出计算结果。



要想自动写公式,就得使用一个函数,该函数是FormulaR1C1。

总之,自动写公式的中文语法为:

作为参照对象的单元格.FormulaR1C1 = "=公式名称(R[行偏移量]:C[列偏移量]:R[行偏移量]:C[列偏移量])

下面,我们就先给出上表的两种自动写公式的VBA代码,分别如下:

'第一种写法

For i = 2 To 5

'总分公式

Worksheets(1).Cells(i, 3).FormulaR1C1 = "=SUM(RC[-2]:RC[-1])"

'平均分公式

Worksheets(1).Cells(i, 4).FormulaR1C1 = "=Average(RC[-3]:RC[-2])"

Next i

'第二种写法

For i = 2 To 5

'总分公式

Worksheets(1).Range("C" & i).FormulaR1C1 = "=SUM(RC[-2]:RC[-1])"

'平均分公式

Worksheets(1).Range("D" & i).FormulaR1C1 = "=Average(RC[-2]:RC[-1])"

Next i

公式说明

Worksheets(1).Cells(i, 3).FormulaR1C1或Worksheets(1).Range("C" & i).FormulaR1C1,代表的是参照对象的单元格。其中i是变量,如果i等于2,那么:

Worksheets(1).Cells(2, 3).FormulaR1C1代表的是第一个工作表的第2行第3列的单元格,即C2单元格。当然,Worksheets(1).Range("C" & 2).FormulaR1C1,指的也是C2单元格。

另外,还有一个重要概念就是RC,比如RC[-2]:RC[-1]代表的是什么意思呢?这在上面也提到过了,RC代表的是偏移量,R代表行,C代表列。到底偏移多少,那么,必须以指定的单元格作为参照对象。其中的偏移量,可以使用这样的方法来说明,如:

R[行偏移量]:C[列偏移量]其中,行列都可以偏移,也都可以不偏移,如果给出数字,就说明一定偏移,如果不给出数据,就说明不偏移;如果给出的是负数,说明是往左或往上移,如果给出的是正数,那么是往右或往下偏移。

比如,以C2单元格为参照对象(C2的位置为第2行第3列),那么,通过R[1]:C[-1]之后,说明行向下移一行,变成第3行,而列的偏移为负1,说明向左偏移1行,则列变成2,因此,通过这样的偏移后,那么,就为B3单元格了。

再比如,D6单元格,通过R:C[3]偏移之后(我们知道,行未给出偏移量,说明不变,而列的偏移量为3,说明向右偏移3),所得的结果为G6。

最后,我们再回到公式,请看:

Worksheets(1).Cells(i, 3).FormulaR1C1 = "=SUM(RC[-2]:RC[-1])"假设i等于2

那么,Worksheets(1).Cells(i, 3).FormulaR1C1相当于Worksheets(1).Cells(2, 3).FormulaR1C1,即第一个工作表的第2行第3列的位置,正是C2单元格,以它为参照对象,那么C2单元格的公式为:"=SUM(RC[-2]:RC[-1])"

"=SUM(RC[-2]:RC[-1])"这如何理解呢?这里涉及到RC偏移,它是以C2单元格单元格为参照对象进行偏移的,我们从中看出,R行偏移未给出参数,说明行不变,都是第2行,而列分别都给出了偏移量,-2代表向左偏移两个位置,即从C列向左偏移两个位置,自然变成A列,那么,RC[-2]就变成A2,而-1代表向左偏移1个位置,由C列变成B列,那么,RC[-1]就变成B2了。

因此,C2单元格中的自动写入的公式"=SUM(RC[-2]:RC[-1])"其实就相当于=SUM(A2:B2),这正是我们所需要的正确的公式。自动写公式和RC偏移量,就给你分析到这里,已经够详细了,其它的类似的,按此方法推理即可。

(0)

相关推荐

  • excel表格怎么利用vba自动填充公式?

    excel中使用vba自动填充公式的方法 1.首先我们打开一个工作样表作为例子. 2.打开vba编辑窗口,创建一个新的模块,并输入以下代码: Sub 填充公式()     Dim i As Long, ...

  • 解读Excel高手写公式使用的{}--%&符号含义

    Excel高手的世界,我们初触excel的同学们,真还不懂.高手们在编写excel函数公式,经常会玩大括号({}).双减号(--).百分号(%).连接空值(&"")等等稀奇 ...

  • excel中vba自动输入代码的信息提示的方法

    小编致力于为大家奉献最有效的,让大家能够解决掉问题,但是大家也都知道,每个人遇到的情况都是不一样的,大家在看小编的同时,除了跟随操作,也需要自己的思考,举一反三的解决问题,这样才会变得更加有内涵,成为 ...

  • 教你Windows 7秘籍揭秘:用“手”写公式

    教你Windows 7秘籍揭秘:用"手"写公式 操作方法 01 大家都知道在office软件中有个"公式编辑器",它是个可选组件,利用它可以轻松的输入各种复杂的 ...

  • Word文档自动生成公式编号

    大家在使用office2010制作Word文档的时候想要在Word文档自动生成公式编号,那么office2010怎么在Word文档自动生成公式编号呢?其实方法很简单哦,只要打开文档选择插入公式位置后点 ...

  • 如何使用win7电脑中的手写公式功能?

    小编有一个朋友是数学老师,现在的所有东西都智能化了,就连他们改试卷也变得智能化了,很多东西都是在网上实现的,不过这位朋友有些犯难了,因为之前他总是习惯将正确的答案标注在一旁,但是现在使用电脑修改试卷, ...

  • 在Word2016中怎么输入手写公式

    在Word2016中怎么输入手写公式 1."开始"-->"Word 2016 Preview",启动Word.需要说明的是,PowerPoint 2016 ...

  • excel多个工作表相同单元格自动求和公式介绍

    许多朋友在制作一些数据表格的时候经常会用到公式运算,其中包括了将多个表格中的数据相加求和,或者是批量将多个表格相加求得出数据结果.不太明白的朋友到下文了解一下. 方法/步骤 我要自动计算出从<工 ...

  • 怎么用Word2016的墨迹公式快速插入手写公式

    我们在编辑数学试题的时候,有时需要输入一些公式,如果正常的方法输入特别的麻烦,其实我们可以快速的手写输入,这样即快速又方便准确,下面我们就一起来看一下操作方法吧. 操作方法 01 打开正在编辑的Wor ...