Excel学习笔记003-001:如何在VBA程序中调用Excel函数进行运算

按说Excel函数应该只在工作表中应用,好像VBA不可以用的,但实际上许多Excel函数具有很高的效率,如果能把两者结合起来的话,肯定是事半功倍!但说实在话,开始时我总是想着如何从VBA的角度来解决问题,当初Excel函数这块掌握不较少,导致现在一想才发现自己真的很浅薄!不过回过头来想,如果可以掌握如何在VBA程序中调用Excel函数的话,那事情不是更好吗!!!

所以今天要解决的问题是:如何在VBA程序中调用Excel函数?终极目标就是把Excel工作表中的的所有函数都放到VBA中进行调用,完全掌握它们的种种用法.

Sub 调用clean函数()
    '如何调用clean(text)函数 用途:删除指定文本中所有非打印符号,保证数据的有效性.
    Range("B1").Value = Application.WorksheetFunction.Clean("@diahdfias")
    Range("B2").Value = "'" & Application.WorksheetFunction.Clean(Range("A1").Value)
    '文本是要从中删除不能打印字符的任何工作表信息,注意第2行命令,clean中的为文本格式,如果在工作表函数中应为如clan(A1),表示在把A1单元格中非打印字符删掉,但如在VBA中调用,就不能这样写,
    '必须写成range("A1").value的形式才可以.如果也写成range(A1)的形式,那么将不会返回任何数据!!
End Sub

Sub 关于sum函数的调用举例()
    Application.DisplayAlerts = False
    Worksheets("sheet1").Activate
    Dim totalR As Integer
    Dim mycell As Range
    totalR = Range("C65536").End(xlUp).Row
    Dim i As Integer
    For i = 2 To totalR
        Set mycell = Range(Cells(i, 4), Cells(i, 11)) '先设置好mycell的单元格区域,正好可以在sum中使用,不然的话,下一语句中根本无法使用,并且这种种法
        '还可以突破sum函数只能对30个数相加的限制.
        Range(Cells(i, 12), Cells(i, 12)).Value = Application.WorksheetFunction.Sum(mycell)
    Next i
End Sub

关于Sum函数的效果截图如下图所示:

image

image

菊子曰 今天你菊子曰了么?
posted @ 2010-03-08 12:12  surfacetension  阅读(1768)  评论(0编辑  收藏  举报