VBA自动写公式

DjMaper

DjMaper

2016-02-19 13:14

生活已是百般艰难,为何不努力一点。下面图老师就给大家分享VBA自动写公式,希望可以让热爱学习的朋友们体会到设计的小小的乐趣。

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

VBA自动写公式

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

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

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

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

"第一种写法

For i = 2 To 5

"总分公式

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

"平均分公式

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/diannaorumen/)

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])"

"平均分公式

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/diannaorumen/)

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])"

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/diannaorumen/)

"=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偏移量,就给你分析到这里,已经够详细了,其它的类似的,按此方法推理即可。

展开更多 50%)
分享

猜你喜欢

VBA自动写公式

电脑入门
VBA自动写公式

Excel VBA如何根据姓名自动插入照片

电脑入门
Excel VBA如何根据姓名自动插入照片

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

Excel中用宏和VBa自动统计成绩

办公软件
Excel中用宏和VBa自动统计成绩

excel双击列标题自动排序的VBA代码

电脑入门
excel双击列标题自动排序的VBA代码

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

Excel自动求平均值函数公式

excel
Excel自动求平均值函数公式

ASP写的自动生成SELECT表单的函数

ASP
ASP写的自动生成SELECT表单的函数

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

关于魔方阵的解法

关于魔方阵的解法

JS与Java在网页设计中的区别

JS与Java在网页设计中的区别
下拉加载更多内容 ↓