VBA第六讲 函数与公式

 当变量与字符串连接时候,一定在中间加连接符号&,否则会提示错误。

如"=b2*c2" ,在x=2 to 6时候,cells(x,4)="=b"&x&"*c"&x  (实际运行时提示错误)

我自己写的公式,经检验完全可用。

Sub bas1()

Dim x As Range

For Each x In Range("d2:d6")

x = x.Offset(0, -1) * x.Offset(0, -2)

Next x

End Sub

用VBA在单元格输入带引号的公式,遇到单引号就把单引号加倍。

sub t3()

range ("c9")="=SUMIF(A2:A6,""b"",b2:b6)"

end sub

利用VBA在单元格中输入数组公式

sub t4()

range("c9").formulaArray= "=sum(B2:B6*C2:C6)"

end sub

利用单元格公式返回值

sub t5()

range("d13")=Evaluate("=SUMIF(A2:A6,""B"",B2:B6)")

range("d9")=Evaluate("=SUM(B2:B6*C2:C6)")

End sub

Evaluate 还可以返回数组公式的值

我自己仿写的,心得,若是利用单元格公式直接返回值,其实就是在引用单元格公式的基础上,在单元格公式外穿一层衣服,Evaluate(),就可以了。

Sub bas3()

Range("d9") = Evaluate("=sum(d2:d6)")

End Sub

借用工作表函数

sub t6()

  range("d8")=Application. WorksheeFunction.Sum(Range("d2:d6"))

end sub

调用函数的参数设置问题,Sum(Range("d2:d6"))是VBA表示方法。

countif(range("a1:a10"),"b"),调用工作表函数,一定要用VBA表示方法。

利用VBA函数

sub t7()

  range("c20")=VBA.Instr(range("a20"),"E")

end sub

想知道有哪些VBA的函数,输入VBA.系统就会弹出。关于这一步,要注意,如果忘记写range在instr函数中,并不会报错,但是结果会返回0,实际上结果是3.

编写自定义函数(后续填坑)

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