第六课 函数与公式

一、在单元格中输入公式

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

你可能感兴趣的:(第六课 函数与公式)