第六课 函数与公式
2017-12-16 本文已影响10人
流星雨的梦
一、在单元格中输入公式
1、用VBA在单元格中输入普通公式
Sub t1()
Range("d2") = "=b2*c2" '引号之间写入要输入的公式'
End Sub
2.使用循环输入公式
Sub t2()
Dim x As Integer
For x = 2 To 6
Cells(x, 4) = "=b" & x & "*c" & x '字符串与变量之间必须用&连接,且不变的内容用双引号引起来'
Next x
End Sub
3.用VBA在单元格输入带引号的公式
Sub t3()
Range("c16") = "=SUMIF(A2:A6,""b"",B2:B6)" '遇到单引号就把单引号加倍'
End Sub
4.用VBA在单元格中输入数组公式
Sub t4()
Range("c9").FormulaArray = "=SUM(B2:B6*C2:C6)" '数组不需要在=外加大括号,用FormulaArray即可
End Sub
二、利用单元格公式返回值
用evaluate()实现。此时只显示数值而没有公式
Sub t5()
Range("d16") = Evaluate("=SUMIF(A2:A6,""b"",B2:B6)") '用evaluate实现'
Range("d9") = Evaluate("=SUM(B2:B6*C2:C6)")
End Sub
三、借用工作表函数
使用Application.WorksheeFunction.函数,其中WorksheeFunction可以省略。调用的函数在编写时要用VBA语言,如sum(A1:A3)中,单元格表示方式应为sum(range(“A1:A3”))
Sub t6()
Range("d8") = Application.WorksheeFunction.CountIf(Range("A1:A10"), "B")
End Sub
四、利用VBA函数
VBA函数有很多
Sub t7()
Range("C20") = VBA.InStr(Range("a20"), "E") 'E在a20单元格的位置(第几个字符)类似工作表函数的find
End Sub
五、编写自定义函数
Function wn()
wn = Application.Caller.Parent.Name
End Function