Dzwebs.Net

撰写电脑技术杂文十余年

VBA自动写公式

Admin | 2012-6-24 9:51:33 | 被阅次数 | 10706

温馨提示!

如果未能解决您的问题,请点击搜索;登陆可复制文章,点击登陆

  VBA功能强大,不仅能灵活的统计数据,也能在指定的单元格中自动写公式。

  下面就给你认真的介绍,通过VBA如何在Excel单元格中自动写公式

  先看下图。

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


该杂文来自: Excel杂文

上一篇:RSQ函数的功能及使用

下一篇:excel FormulaR1C1语法及使用方法

网站备案号:

网站备案号:滇ICP备11001339号-7

版权属性:

Copyright 2007-2021-forever Inc. all Rights Reserved.

联系方式:

Email:dzwebs@126.com QQ:83539231 访问统计