VBA自动写公式

2016-02-19 13:14 7 1 收藏

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

【 tulaoshi.com - Excel教程 】

下面的表,我们要使用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://www.tulaoshi.com)

"平均分公式

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

Next i

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

"第二种写法

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

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

公式说明

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

来源:http://www.tulaoshi.com/n/20160219/1603482.html

延伸阅读
标签: 电脑入门
Excel的填充功能,不仅可以使用拖曳的方法自行填充公式或内容,同时,我们还可以使用自动填充的功能,填充上相应的数据或公式! 如果想在N个单元格中填充公式,那么,使用拖动的办法是不科学的,因为数据行太多了。比如,您想在C1到C10000之间,填充上公式,如果使用拖动,那么,就太累了。这个时候,应该使用自动填充功能。 方法如下:先看下...
杨辉三角的基本特征     杨辉三角就是两个未知数和的幂次方运算后的系数问题,比如(x+y)的平方=x的平方+2xy+y的平方,这样系数就是1,2,1这就是杨辉三角的其中一行,立方,四次方,运算的结果看看各项的系数,你就明白其中的道理了。杨辉三角最本质的特征是,它的两条斜边都是由数字1组成的,而其余的数则是等于它肩...
标签: 电脑入门
如下代码示例的功能是,在Excel中,通过VBA代码,读取XML文件中的内容。 Dim rst As ADODB.Recordset Dim stCon As String, stFile As String Dim i As Long, j As Long Set rst = New ADODB.Recordset stFile = "C:dzwebs.xml" stCon = "Provider=MSPersist;" With rst .CursorLocation = adUseClient .Open stF...
标签: 办公软件
在日常办公中,经常需要用Word打印一些需要折叠的文件(比如数量很少的说明书、员工手册等,A4纸对折为32开规格装订的情况最多),我们在"页面设置"中把页面变成横向后,使用Word的"分栏"功能很容易排出这样的版面。但是在给这些文件插入页码的时候问题就出现了:因为我们所规定的两页对于 Word来说其实是一页,所以Word的插入"页码"在这里就失效...
标签: windows系统
两种开启Win8手写输入公式功能的方法   方法一: 在Win8系统Metro应用界面上,用鼠标右键点击空白位置处,在下面会出现所有应用选项窗口,点击所有应用。 打开win8系统所有应用,找到数字输入面板,并打开。打开后即会出现手写输入公式的窗口,这时就可以直接进行手写输入。 方法二: 在Win8系统上,使用Win+R...

经验教程

689

收藏

89
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部