一, 在单元格中输入公式的3种方法:
1) 用VBA在单元格中输入普通公式
Sub formula_1() Range("d2") = ("=B2 * C2") End Sub
运行程序后,在D2的单元格内显示的是公式 =B2 * C2 ,并非程序返回值.下文(二)中会介绍另外一种直接返回值的方式
想要通过程序一次计算完所有D列金额,只要运行上一篇文章循环语句,即可一次性完成计算. 具体代码如下:
Sub fomula_t2() Dim x As Integer For x = 2 To 4 Cells(x, 4) = "=b" & x & "*" & "c" & x Next x End Sub
2)用VBA在单元格中输入带引号的公,以Sumif公式举例,函数Sumif参数:(Range,Criteria,sum_rangge)即(判断范围,判断条件,求和区域). 其中判断条件可以为单元格也可以是文本,而文本在函数参数中是需要加上引号的.
在单元格用公式的方式实现方式:
如果需要用VBA代码的方式实现 , 需要特别主要的是:公式中用到引号的地方,VBA代码中需要使用双重引号 : 见下放代码中的""刀轮""
Sub fumula_t3() Range("B10") = "= sumif(A2:A5,""刀轮"",d2:d5)" End Sub
3)在Excel中我们时常会使用到数组来帮助计算, 使用数组的方式计算上图中的D列合计金额计算方法: = sum(B2:B5 * C2:C5).
*Excel小知识: 特别注意在计算前需要首先选中D2:D5,然后输入公式.最后同时按下Ctrl + Shift + Enter
如果使用VBA的方式,则需要调用一个Range新的属性Formulaarray可实现相同的效果:
Sub formula_t4() Range("D2").FormulaArray = "=sum(B2:B6 * C2:C6)" End Sub
-----------------------------------
二,利用单元格公式返回值,不显示公式
在公式之前加上Evaluate后, 单元格只显示公式的返回值,而不会显示公式.
Sub formula_1() Range("d2") = Evaluate("=B2 * C2") End Sub
------------------------------------
三,调用Excel公式
调用方法:Application.worksheetfunction
注意事项:单元格表示方式与公式不同, 上述方法的单元格表示方式均为单元格加引号("D2"),如果使用调用的方式,则需要表示为range("D2")
Sub fomula_t6() Range("b10") = Application.WorksheetFunction.Sum(Range("d2:d5")) End Sub
-------------------------------
四,调用VBA函数
VBA函数与工作表函的数有一些重叠的部分,有些功能类似但是参数的顺序不同.鉴于函数太多,大家在使用的时候可以通过F1查看帮助以便更好地使用.这里我们只说明一下调用地方法. 我们使用VBA.Instr 函数举例,实现在C9单元格中显示"金"字在B9单元格中首次出现地位置
Instr:指定一个字符串在另一个字符串中首次出现的位置 ,
Sub fomula_t7() Range("C9") = VBA.InStr(Range("B9"), "金") End Sub
运行后,得到地结果是 3.
除了以上4中方法,还有一个就是自定义函数了,这部分我们在后面的Function功能会再次重点讲解,这里就不再赘述了~
关键字: 双引号 , Formulaarray , evaluate , worksheetfunction , VBA函数
今天的内容就是这些了,快动手试一试吧~