VBA代码解决方案第十三讲:如何利用VBA在单元格中录入公式

VBA语言専攻 2024-04-30 18:08:04

《VBA代码解决方案》(版权10028096)这套教程是我最早推出的教程,目前已经是第三版修订了。这套教程定位于入门后的提高,在学习这套教程过程中,侧重点是要理解及掌握我的“积木编程”思想。要灵活运用教程中的实例像搭积木一样把自己喜欢的代码摆好。

这套教程共三册,一百四十七讲,内容覆盖较广,也是初级和中级间的过渡教程,改版后的内容主要是提供程序源码文件及代码修正为32位和64位兼用代码。今后一段时间会给大家陆续推出。今日的内容是VBA代码解决方案第十三讲:如何利用VBA在单元格中录入公式

【分享成果,随喜正能量】昨日种种,皆成今我。今日种种,皆成新我。山再高,终会登顶。路再远,终会抵达。。

第十三讲 如何利用VBA在单元格中录入公式

今日给大家讲解VBA代码方案的第13讲,如何利用VBA在单元格中录入公式.我们知道,在EXCEL中,录入公式是很平常的事,但在VBA中录入公式要借助于Range对象的Formula属性。下面用分几种途径来解决:

1 使用Range对象的Formula属性在单元格区域中写入公式

其语法如下:expression.Formula

参数expression是必需的,是一个Range对象。

实例:如下面的代码所示。

Sub mynz_13() '第13讲 如何利用VBA在单元格中录入公式

Sheets("13").Select

Range("C2:C10").ClearContents

Range("C2:C10").Formula = "=SUM(A2+B2)"

End Sub

我们看下面的代码截图:

代码解析:上述代码中利用了.Formula = "=SUM(A2+B2)",我们把这句话转换为EXCEL中的操作就是相当于在C2中录入公式= SUM(A2+B2),然后在C3,C4,C5,C6,C7,C8,C9,C10中复制上面的公式也就是说C3:= SUM(A3+B3); C4:= SUM(A4+B4); C5:= SUM(A5+B5); C6:= SUM(A6+B6); C7:= SUM(A7+B7); C8:= SUM(A8+B8); C9:= SUM(A9+B9); C10:= SUM(A10+B10)

代码运行前:

运行后:

2 使用FormulaR1C1属性返回或设置R1C1样式符号表示的公式

如下面的代码所示。

Range("C1:C10").FormulaR1C1 = "=SUM(RC[-2]+RC[-1])"

3 使用Range对象的FormulaArray属性写入数组公式

如果需要在单元格中写入数组公式则使用Range对象的FormulaArray属性。如下面的代码所示。

Range("C2:C10").FormulaArray = "=A2:A10+B2:B10"

Range对象的FormulaArray属性返回或设置单元格区域的数组公式。

好了,今日的代码方案就讲到这里,

今日内容回向:

1 expression.Formula expression.FormulaR1C1 expression.FormulaArray 意义是什么

2 上述的三个属性的返回值是什么?

本讲内容参考程序文件:VBA代码解决方案(1-19).xlsm

我20多年的VBA实践经验,全部浓缩在下面的各个教程中:

0 阅读:32