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.

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本例为设置密码窗口 (1) If Application.InputBox(“请输入密码:”) = 1234 Th...
    浮浮尘尘阅读 13,769评论 1 20
  • 自从2014年开通[完美Excel]微信公众号以来,坚持分享已经学习到的Excel和VBA知识和心得,目前已分享文...
    完美Excel阅读 8,344评论 6 69
  • 1.1 VBA是什么 直到90年代早期,使应用程序自动化还是充满挑战性的领域.对每个需要自动化的应用程序,人们不得...
    浮浮尘尘阅读 21,867评论 6 49
  • 函数可以应用于数组,不需要进行循环。 一 函数在数组中的应用 1.1 数组的最值 Sub s() Dim arr1...
    肉丸子豆阅读 1,441评论 0 3
  • 最怕你突然说要放弃 文/白七七 -01- 关于异地恋,我听过最多的一句话就是,不会有结果。距离产生不了美,它只会让...
    住进苹果心脏阅读 510评论 0 0