国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 辦公 > Excel > 正文

VBA自動寫公式

2024-08-23 19:54:05
字體:
來源:轉載
供稿:網友

  下面的表,我們要使用VBA在C和D兩列分別自動輸入公式并得出計算結果。

VBA自動寫公式 CUOxin.COM

  要想自動寫公式,就得使用一個函數,該函數是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偏移量,就給你分析到這里,已經夠詳細了,其它的類似的,按此方法推理即可。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 贞丰县| 江门市| 垫江县| 高淳县| 崇礼县| 行唐县| 昌黎县| 甘德县| 壤塘县| 玉田县| 勃利县| 印江| 大丰市| 监利县| 孝感市| 沈丘县| 大悟县| 新丰县| 蚌埠市| 三江| 宜宾市| 重庆市| 辰溪县| 娄底市| 嘉荫县| 都安| 如皋市| 定安县| 秦安县| 黄梅县| 岗巴县| 咸阳市| 五常市| 郁南县| 乐都县| 姚安县| 陕西省| 鞍山市| 商洛市| 峨边| 济阳县|